0

我正在尝试替换我的文件的一行。我用了

line=" abc"
sed -i "3c ${line}" test.txt

它有效,但第一个空间没有出现。我希望 test.txt 中的第 3 行是

 abc

而不是

abc

注意前面有一个空格abc。感谢您的任何建议!

4

2 回答 2

1
line="\ abc"
sed -i "3c\
$line" test.txt

逃离空间将防止它被修剪。

于 2013-05-30T02:27:45.963 回答
0

sed 替换命令的语法是's/match/replacement/'. 为了找到 abc 并替换它,您需要执行以下操作:

line=" abc"
sed -i "s/^abc$/$line/" test.txt

字符^$分别是行首和行尾的正则表达式元字符。所以^abc$只会匹配包含该模式的行,然后用它abc之前的空格替换它。

于 2013-05-30T02:18:20.903 回答