从bash中的txt文件中读取行

时间:2014-04-06 17:22:47

标签: bash shell line

我如何读取格式为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

1 个答案:

答案 0 :(得分:3)

您走在正确的轨道上,但您的代码存在问题:

  • 删除=行中FILE =周围的空格 - 否则您的脚本会中断。
  • 您的while语句缺少do行(或直接在; do行附加while)。
  • 而不是在$FILE行中引用变量 done,而是传递字符串文字 FILE - 使用{ {1}}(引号用于确保它甚至可以用于具有嵌入空格和其他字符的文件名。由shell解释。)

至于忽略行尾的可选字符:只需添加另一个变量,就像你的代码已经做的那样("$FILE")就足够了 - 然后会为它分配余数该行,您可以忽略它。

如果我们把它放在一起,添加忽略注释行的代码,我们得到:

charP