我有一个包含这一行的文本文件:
set stime = '0 0'
我需要将其更改为:
set stime = '0 4'
我尝试了这些命令:
sed -i 's/original/new/g' file.txt
和
awk '{gsub(/pattern/,"replacement")}' file
但他们不工作。我想这是因为模式中的撇号。我怎样才能正确地做到这一点?
我有一个包含这一行的文本文件:
set stime = '0 0'
我需要将其更改为:
set stime = '0 4'
我尝试了这些命令:
sed -i 's/original/new/g' file.txt
和
awk '{gsub(/pattern/,"replacement")}' file
但他们不工作。我想这是因为模式中的撇号。我怎样才能正确地做到这一点?
为了转义单引号
'
,您应该使用双引号:"
.为了就地更新,您应该使用
sed -i
以下代码应就地更新,并转义单引号:
你有几个选择:
对 sed 或 awk 命令使用双引号而不是单引号:
或者
将模式保存在 shell 变量中并使用双引号:
然后
或者
不要使用整个模式。只需找到正确的行并仅替换需要更改的内容,避免引用。例如,如果您只出现一次
set stime
,您可以执行以下操作:或者