我在 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/