使用 sed 在行尾附加字符串

使用 sed 在行尾附加字符串

我想将以下字符串附加到文件中所有行的末尾。我尝试在网络上搜索,但找不到任何相关内容。我也使用了下面的命令

sed -i -e "s?$?\$dest \$port \$fgt --pin '\$limit' --nogui;"? ipv42

有人可以帮我吗我想将以下字符串附加到文件中所有行的末尾

$dest $port $fgt --pin '\$limit' --nogui;

答案1

一种方法是使用heredoc,反斜杠来抑制变量扩展。我们正在做的是提供一个完全引用的字符串(多行)heredoc。

sed -f - <<\_SED_ inputfile 
s?$?$dest $port $fgt --pin '$limit' --nogui;?
_SED_

答案2

您的 sed 脚本几乎可以工作,除了:

  1. s 命令的最后一个分隔符?, 应位于引号内
  2. 你需要$在搜索部分转义,因为 shell 解释$?为最后执行的命令的退出状态。

正确命令:

sed -i -e "s?\$?\$dest \$port \$fgt --pin '\$limit' --nogui;?" ipv42

相关内容