awk - 为什么awk不打印换行符?

标签 awk

我有一个看起来像这样的文件:

1 
2
AA 
4
5
AA BB
7
8
AA BB CC
10
11
AA BB CC DD

我正在使用 awk 来仅提取nth中的每个n=3行。
>>awk 'NR%3==0' /input/file_foo >> output/file_foobar

输出以单行显示为:
AA AA BB AA BB CC AA BB CC DD

.....等等

我希望它显示为:
AA 
AA BB 
AA BB CC 
AA BB CC DD 

我尝试将\nprintf\n一起使用,依此类推,但它并没有按我预期的那样工作。请指教。

最佳答案

一种冗长的方式

awk '{ if (NR%3==0) { print $0}  }'

您也可以使用{printf("%s\n\n", $0)}。如果单个\n不起作用。

如果仍然无法正常工作,则可能需要检查行终止符。可能不正确。在RS中使用awk变量来分隔异常行终止符。

关于awk - 为什么awk不打印换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9490992/

相关文章:

Linux/Unix 在同一行中选择特定数据

AWKing 或 GREPing 括号 [ ]?

linux - 如何在 Linux 中处理具有固定宽度列的文件

bash - sed、awk、grep 匹配单词 2 个文件

bash - 如何在 awk 中用 "."替换重复的行?

database - 使用 awk 处理数据库

linux - 在 AWK 中使用 2 个关键字开始和停止打印

linux - 替换一行结束后的第二个点

linux - 如何根据列字符串的出现仅输出前 n 行

linux - 在 unix 中将行转置为列