8

以下のsedコマンドを実行します

sed -i s/abc=.*$/abc=def ghi/g hpq_sf_attach_wf_param.txt

そしてそれは私にエラーを与えました:

sed: -e expression #1, char 17: unterminated `s' command

defとの間のスペースが原因であることに気付きましたghi。それを修正する方法はありますか?

4

2 に答える 2

15

$スペース、 、などの特殊文字を保護するには、引用符を使用する必要があります*

sed -i 's/abc=.*$/abc=def ghi/g' hpq_sf_attach_wf_param.txt
于 2012-04-25T02:17:25.017 に答える
4

だからギーコサウルスは正しかった。ただし、問題が発生した理由は、ワイルドカードを二重引用符で囲む必要があるためです。これは、一重引用符を使用すると、必要な意味ではなく、リテラル文字として使用されるためです。

sed -i "s/abc=.*$/abc=def ghi/g" hpq_sf_attach_wf_param.txt

また、「def」と「ghi」の間のスペースが問題になる場合は、「\」を追加すると、文字どおりのスペースとして読み取られるようになります。

sed -i "s/abc=.*$/abc=def\ ghi/g" hpq_sf_attach_wf_param.txt
于 2013-05-30T18:59:07.743 に答える