我的文件只有一行:
$ cat employee-one-line.txt
101,John Doe:102,Jason Smith:103,Raj Reddy:104,Anand Ram:105,Jane Miller
$
但执行以下脚本时,它会在末尾打印一个多余的空行:
$ awk -F, 'BEGIN{ RS=":" } {print $2}' employee-one-line.txt
John Doe
Jason Smith
Raj Reddy
Anand Ram
Jane Miller
$
为什么结尾有一个空行?
最佳答案
由于您已将记录分隔符设置为冒号,最后一条记录是105,Jane Miller
,后跟换行符。print
将一个ORS
(输出记录分隔符)添加到它打印的内容的末尾,这样您就得到两个。
默认行为是awk使用换行符作为记录分隔符,然后在print
时将其添加回。
在这种情况下,为了让awk吞掉换行符,可以将其添加到字段分隔符中:
awk -F'[,\n]' 'BEGIN{ RS=":" } {print $2}' file
关于linux - 为什么输出末尾包含空白行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36644795/