在 bash 脚本中使用 awk 从文本文件读取值时无法打印空行

在 bash 脚本中使用 awk 从文本文件读取值时无法打印空行

awk在我的脚本中表现得很奇怪。我正在尝试从文本文件中读取值(见file.txt下文)。

awk忽略脚本中的空格,但是当我awk单独测试该语句(在调试脚本中)时,它提供了正确的输出。

这是file.txt

cain
jon
chris

johny
anthony

jose

这是我的awk声明:awk '{print $1}' file.txt

awk这是该语句位于我的脚本中时的输出:

cain
jon
chris   
johny
anthony    
jose

awk这是在我的测试脚本中隔离该语句时的输出:

cain
jon
chris

johny
anthony

jose

我尝试使用\n作为分隔符,但得到了相同的结果。

为什么awk我的脚本中的行为与孤立的脚本中的行为不同?

如果需要进一步解释,请告诉我。

答案1

我认为这可能是您脚本中的错误,而不是awk脚本本身的错误。

awk当双换行符设置为RS变量时,情况如下:

awk '{print $1}' RS='\n|\n\n' file

您应该检查您的脚本是否更改了 的值RS

相关内容