我如何读取格式为intA intB intC intD charP
的行,其中" charA"是可选的吗?
还有可能用#文本
我试过这样的事情
FILE = 'test.txt'
while IFS=' ' read -r numA numB numC numD charP
#do something with this
done < FILE
但我不知道我是否走上了正确的道路以及如何处理charP
样品:
# comment
12345678 24 15 3 p
87654321 11 4 8
43218765 27 10 2 P
答案 0 :(得分:3)
您走在正确的轨道上,但您的代码存在问题:
=
行中FILE =
周围的空格 - 否则您的脚本会中断。while
语句缺少do
行(或直接在; do
行附加while
)。$FILE
行中引用变量 done
,而是传递字符串文字 FILE
- 使用{ {1}}(引号用于确保它甚至可以用于具有嵌入空格和其他字符的文件名。由shell解释。)至于忽略行尾的可选字符:只需添加另一个变量,就像你的代码已经做的那样("$FILE"
)就足够了 - 然后会为它分配余数该行,您可以忽略它。
如果我们把它放在一起,添加忽略注释行的代码,我们得到:
charP