sed 命令不更新文本文件
sed command not updating text file
想问一下,因为我在 unix 脚本中遇到 sed 命令问题。
#!/bin/sh
cnt=2
sed '1 c\
$cnt' test.txt
我想将文本文件的第一行test.txt替换为变量cnt的值,即2。如何在上面的sed命令中传递变量? sed 命令将 $cnt 视为字符串。
更改为:
#!/bin/sh
cnt=2
sed "1 c\
$cnt" test.txt
要进行变量插值,您需要将其放在双引号内而不是单引号内。
变量没有用单引号展开。不过,它们用双引号展开。
sed "1 c\
$cnt" test.txt
请注意,sed
默认情况下不会更新输入文件,而是输出更改后的版本。如果您的 sed 实现支持它,请使用 -i
开关修改输入文件。否则,您必须将输出重定向到一个新文件并将其重命名回原始名称:
sed "..." text.txt > text.new
mv text.new text.txt
想问一下,因为我在 unix 脚本中遇到 sed 命令问题。
#!/bin/sh
cnt=2
sed '1 c\
$cnt' test.txt
我想将文本文件的第一行test.txt替换为变量cnt的值,即2。如何在上面的sed命令中传递变量? sed 命令将 $cnt 视为字符串。
更改为:
#!/bin/sh
cnt=2
sed "1 c\
$cnt" test.txt
要进行变量插值,您需要将其放在双引号内而不是单引号内。
变量没有用单引号展开。不过,它们用双引号展开。
sed "1 c\
$cnt" test.txt
请注意,sed
默认情况下不会更新输入文件,而是输出更改后的版本。如果您的 sed 实现支持它,请使用 -i
开关修改输入文件。否则,您必须将输出重定向到一个新文件并将其重命名回原始名称:
sed "..." text.txt > text.new
mv text.new text.txt