使用 sed 传递关键字匹配变量时出错

使用 sed 传递关键字匹配变量时出错

我正在编写一个用于文本处理的 bash 脚本,其中此命令给我错误:

sed -e "/\<$7\>/ /\<$5\>/$6/" < "$2/$1" > "file.tmp"

这会产生以下错误:

> Unrecognized command: /\<key\>/ /\<Hi\>/Hello/

我究竟做错了什么?

变量的值与错误中的值相同。

“$2/$1”是文件路径和文件名

答案1

让我看看是否明白你的问题。如果文件中的行与 $7 匹配,您想用 $6 替换 $5 吗?你那里缺少一个's'

sed -e "/\<'$7'\>/s/\<'$5'\>/'$6'/" < "$2/$1" > "file.tmp"

相关内容