如何在一组值后添加特定字符串

时间:2017-12-28 20:09:10

标签: shell scripting

例如,我的文件包含以下条目: -

10.59.37.9      strvasr5267
10.59.37.11     strvasr5268
10.59.37.15     strvasr5279
10.59.37.16     strvasr5303

我希望在每个主机名之后添加# "TRENDS:*,netstat:netstat|netstat1|netstat2|netstat3",如: -

10.59.37.9  strvasr5267   # "TRENDS:*,netstat:netstat|netstat1|netstat2|netstat3"

是否有任何循环我可以读取ip和主机名,然后在主机名后添加上面的字符串......

2 个答案:

答案 0 :(得分:0)

如果您只想添加字符串:

sed -i 's/$/   # "TRENDS:*,netstat:netstat|netstat1|netstat2|netstat3"/' file

如果你需要在shell循环中使用ip和hostname:

while read -r ip name; do
    do_something_with "$ip" "$name"
    printf '%s\t%s\t# "TRENDS:*,netstat:netstat|netstat1|netstat2|netstat3"\n' "$ip" "$name"
done

答案 1 :(得分:0)

您可以使用简单的sed命令

在每行的末尾添加一个常量字符串
 sed -i 's/[0-9].*$/& # "TRENDS:*,netstat:netstat|netstat1|netstat2|netstat3"/g' file

正如OP指出的那样,为什么需要读取文件内部的IP。更新您的问题以获得更新的答案。