ファイルの行を置き換えようとしています。使った
line=" abc"
sed -i "3c ${line}" test.txt
動作しますが、最初のスペースが表示されません。test.txt の 3 行目を
abc
それよりも
abc
の前にスペースがあることに注意してabc
ください。提案をありがとう!
ファイルの行を置き換えようとしています。使った
line=" abc"
sed -i "3c ${line}" test.txt
動作しますが、最初のスペースが表示されません。test.txt の 3 行目を
abc
それよりも
abc
の前にスペースがあることに注意してabc
ください。提案をありがとう!
line="\ abc"
sed -i "3c\
$line" test.txt
スペースをエスケープすると、スペースがトリミングされなくなります。
sed 置換コマンドの構文は次のとおりです's/match/replacement/'
。abc を見つけて置き換えるには、次のようにする必要があります。
line=" abc"
sed -i "s/^abc$/$line/" test.txt
文字^
と$
は、それぞれ行頭と行末を表す正規表現のメタ文字です。その^abc$
ため、正確にそのパターンを含む行のみに一致しabc
、その前のスペースで置き換えます。