将变量的输出追加到特定行的末尾

  • 本文关键字:变量 输出 追加 bash
  • 更新时间 :
  • 英文 :


在我的模板(回调)中,有一行以"IP:"结尾,我想附加到。我尝试了这个命令:

cat callbacks | grep "IP:" | cut -d ":" -f 2 | echo $(ping -c2 host.com). 

以为我能够在最后回声一些东西,但这没有用。有人可以阐明我做错了什么。

这是我到目前为止所拥有的:

for textfile in $(find . -iname "2013*-malware-callback*.txt")
    do cat callbacks | cat - $textfile > tmpfile && mv tmpfile $textfile
done

以下内容获取 $textfile 的内容,查找任何出现的 IP: 并向其附加一个 IP 地址,并将结果保存在 tmpfile 中:

v="1.2.3.4"
cat "$textfile" | sed 's/IP:/IP: '"$v/" >tmpfile

可以简化管道:

sed 's/IP:/IP: '"$v/" <"$textfile" >tmpfile

此外,如果最终目标是用修改后的版本替换$textfile,我们可以使用 sed 的就地修改功能:

sed -i.bak 's/IP:/IP: '"$v/" "$textfile"

这会修改$textfile,并且为了安全起见,保留带有扩展.bak的原始副本的备份副本。

最新更新