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

新手上路,请多包涵

如何使用 bash 在文件中的每一行之后添加一个字符串?可以使用 sed 命令完成吗,如果可以,怎么做?

原文由 Jason Volkoz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 619
2 个回答

如果您的 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

原文由 Tom DeGisi 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

单程,

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

或这个,

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

原文由 Optimus Prime 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题