在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