首页 > 解决方案 > 如何使用 awk 在 txt 文件的第一行末尾添加逗号

问题描述

尝试使用命令,但第一行替换为逗号

awk '{if(NR==1){print $0","}else{print }}' /home/a/b/file1.txt
a 
b
c

预期结果

a,
b
c

标签: awk

解决方案


如果您有 CRLF 结尾,则需要将它们转换为 LF 结尾,请参阅How to convert Windows end of line in Unix end of line (CR/LF to LF)

然后,您的解决方案可能会按原样工作。或者,您可以使用

awk '{ print NR==1 ? $0"," : $0 }' /home/a/b/file1.txt > newfile

在这里,如果它是第一行,则仅在末尾print带有 a 的整行,否则,您仅打印该行本身。,

如果你愿意,你也可以这样做sed

sed '1s/$/,/' /home/a/b/file1.txt > newfile

请参阅在线演示。在这里,sed将行尾位置替换,为第一行(因此,基本上添加了逗号)。如果您使用sed '1s/,*$/,/',您可以确保结果中第一行的末尾只有一个逗号。


推荐阅读