使用 sed 替换变量中的行号

使用 sed 替换变量中的行号

这是我的sed命令:

while ...;
do sed -r "${counter}s/^\S+ /$line /g" $in > $out;
..
..
done

不幸的是,当从 bash 脚本/循环中调用该命令时,该命令不会执行任何操作。所以我想检查变量是否以正确的方式解析:

do echo ´sed -r "${counter}s/^\S+/$line/g" $in > $out´;

将其打印到控制台:

sed -r <line number>/^\S+/<replace pattern>/g <infile> > <outfile>

当从控制台执行这个命令(不带´)时,我得到:

sed: -e expression #1, char 8: unterminated s' command

我想这是因为'图案周围缺少了。

那么,当从 bash 脚本调用它时,如何组合双引号(用于解析 sed 命令中的变量)和单引号(用于完成搜索/替换模式)?

答案1

嗯,这很奇怪。没有发生到输出文件的重定向,至少没有发生预期的替换。 Acp <infile> <outfile>带有以下 sed 替换命令到位奇迹般有效....

感谢您的帮助!

相关内容