如何使用awk在txt文件的第一行末尾添加逗号

时间:2019-07-10 08:19:28

标签: awk

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

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

预期结果

a,
b
c

1 个答案:

答案 0 :(得分:1)

如果您有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整行,如果是第一行,则以,结尾,否则,您只打印行本身。

如果需要,也可以使用sed

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

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