Bash 如何将单词附加到行尾?

标签 bash unix sed awk grep

我在 bash 中执行了一个命令来从这样的文件中检索一些地址:

grep address file.txt | cut -d'=' -f2 | tr ':' ' '

产量:

xxx.xx.xx.xxx port1
xxx.xx.xx.xxx port2

我想将“eth0”附加到每个输出行,然后理想情况下循环遍历结果以在每一行中调用一个命令。我遇到的问题是在每一行的末尾获取额外的字符串。我试过:

| sed -e 's/\(.+)\n/\1 eth0/g'

这不起作用..然后假设我把它放在那里,如果我把它包装在一个 for 循环中,它不会传递完整的行,因为它们包含空格。那么我该怎么做呢?

最佳答案

您可以匹配 $ 以附加到一行,例如:

sed -e 's/$/ eth0/'

编辑:

要遍历这些行,我建议使用 while 循环,例如:

while read line
do
  # Do your thing with $line
done < <(grep address file.txt | cut -d'=' -f2 | tr ':' ' ' | sed -e 's/$/ eth0')

关于Bash 如何将单词附加到行尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14835977/

相关文章:

linux - 基于grep模式自定义文件内容显示

linux - 创建任何用户都无法删除的符号链接(symbolic link)

linux - 联机帮助页中 Unix 命令名称后括号中的数字是什么意思?

bash - 如何过滤掉./gradle project:dependencies命令的特定部分? (版本2)

bash - 如何使用 bash 创建 POSTGRES 数据库的备份?

sed - bash 在每个空格前添加反斜杠?

linux - 替换匹配行中的某些位置

linux - 寻找 linux 应用程序或命令以使用 grep 和 sed 将图像通过管道传输

bash - 从批处理调用时找不到 cywin bash 脚本命令

linux 为 cp850 设置什么语言环境