在Bash中,如何在文件的每一行之后添加一个string?

如何在使用bash的文件的每一行之后添加一个string? 可以使用sed命令完成,如果是这样的话?

如果你的sed允许通过-i参数进行编辑:

 sed -e 's/$/string after each line/' -i filename 

如果没有,你必须做一个临时文件:

 typeset TMP_FILE=$( mktemp ) touch "${TMP_FILE}" cp -p filename "${TMP_FILE}" sed -e 's/$/string after each line/' "${TMP_FILE}" > filename 

如果你有它, 林 (层压)实用程序可以做到这一点,例如:

 $ lam filename -s "string after each line" 

我更喜欢使用awk 。 如果只有一列,则使用$0 ,否则将其replace为最后一列。

单程,

 awk '{print $0, "string to append after each line"}' file > new_file 

或这个,

 awk '$0=$0"string to append after each line"' file > new_file 

Sed有点难看,你可以这样做:

 hendry@i7 tmp$ cat foo bar candy car hendry@i7 tmp$ for i in `cat foo`; do echo ${i}bar; done barbar candybar carbar