我有一个可以包含 1 行或多行的文件
oracle1.txt
oracle2.txt
oracle3.txt
如何使用 AWK 在最后一行后面添加 \n 以便显示
oracle1.txt
oracle2.txt
oracle3.txt\n
我尝试过echo -e "\n" >> manifest.txt
,但我在文件末尾得到了 -ea 而不是 \n。我究竟做错了什么?
答案1
正如评论中已经提到的,echo >> manifest.txt
将在大多数 shell 中完成这项工作,echo '' >> manifest.txt
如果您不了解 shell,可能会更安全。
如果你真的想这样做,awk
你可以使用一个END
规则(也在评论中提到):awk 'END{printf "\n"}' >> manifest.txt
。
printf
您也可以使用print
& 代替,也END
可以使用BEGIN
:awk 'BEGIN{print ""}' >> manifest.txt
如果您想用作manifest.txt
输入awk
但不用作输出(awk
无法读取和写入同一文件),则一个简单的awk 1 manifest.txt
即可(至少在 上GNU awk
,如果不是awk '1;END{print ""} manifest.txt
应该可以解决问题)。这是因为输入被分成记录由记录分隔符 RS
(默认为\n
) ,1
将始终评估为 true,因此默认值行动( {print}
) 将对所有行执行。print
相当于print $0
又与 相同printf $0 ORS
,ORS
是输出记录分隔符默认为\n
.所以即使最后记录输入中不以 结尾,输出中将\n
紧随其后。\n