shell - 如何在unix中每行末尾添加文本

标签 shell unix awk ksh

我正在做某些文本处理操作,最后能够得到一个这样的文件

india
sudan
japan
france

现在我想在上面的文件中添加一条评论,就像在最终文件中一样,它应该是这样的
india | COUNTRY
sudan | COUNTRY
japan | COUNTRY
france | COUNTRY

就像整个文件中的相同评论。我该怎么做呢?

最佳答案

有很多方法:
sed : 替换 $ (行尾)与给定的文本。

$ sed 's/$/ | COUNTRY/' file
india | COUNTRY
sudan | COUNTRY
japan | COUNTRY
france | COUNTRY
awk : 打印该行加上给定的文本。
$ awk '{print $0, "| COUNTRY"}' file
india | COUNTRY
sudan | COUNTRY
japan | COUNTRY
france | COUNTRY

最后,在纯bash : 逐行阅读并与给定的文本一起打印。请注意,如 Why is using a shell loop to process text considered bad practice? 中所述,不鼓励这样做
$ while IFS= read -r line; do echo "$line | COUNTRY"; done < file
india | COUNTRY
sudan | COUNTRY
japan | COUNTRY
france | COUNTRY

关于shell - 如何在unix中每行末尾添加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23078897/

相关文章:

bash - 根据特定条件从文件中分配 BASH 变量

mysql - 在 MySQL 命令行中,如何防止数据值中出现的新行在 SELECT 期间导致控制台输出中出现新行?

linux - Shell 脚本编辑文件行

arrays - 如何按空行将文本文件拆分为数组?

java - 如何运行 java jar 文件并将输出存储在 shell 脚本变量中

c++ - 有什么适合学习Unix/Linux优势的好项目

python - 如何使用分隔符将csv文件分割成多个文件? Python

Linux ls grep 命令

linux - 重定向 tail -f + grep/awk 的输出时发生了什么?

ubuntu - 将 nethogs 速度输出保存到文件