【发布时间】:2019-07-12 13:26:56
【问题描述】:
我正在尝试像这样进行sed 操作
sed -i '100s/abc/xyz/' filename.txt
我想要一个变量中的 100,比如 perl 脚本中的 $var。所以,我正在尝试这样
system("sed -i "${vars}s/abc/xyz/" filename.txt").
这引发了一些错误。
当我这样做时,再次将系统命令放在单引号中:
system('sed -i "${vars}s/abc/xyz/" filename.txt')
这是错误的替换。可以做什么?
【问题讨论】:
-
试试这个:
system("sed -i $vars's/abc/xyz/' filename.txt"). -
@anubhava 我猜你的意思是
system("sed -i '${vars}s/abc/xyz/' filename.txt")。更好更安全的是使用system(qw{sed -i}, "${vars}s/abc/xyz/", qw{filename.txt})。 -
一个建议。在 Perl 中很好地完成这项工作总共需要十几行代码,但我建议您这样做。这条“一条线”需要更多的复杂性,可能会出现故障和模糊的错误报告,可能取决于系统/版本,效率较低......我认为这不值得