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 に答える