Linuxシェルでこのコマンドを実行しましたが、スムーズに実行されました。
sed -i 's/\[-.*-]//g' error .txt
それがすることは、[-すべてのテキスト-]のようなパターンと角括弧と-記号を削除することです。
ただし、Perlスクリプトを介して実行しようとすると、「-」記号のみが削除されます。
使ってみよう
system("sed -i 's/\[-.*-]//g' error.txt");
私は何が間違っていましたか?
ベストアンサー1
Perlでは文字列に二重引用符が使用されるため、\
文字列はPerlで解釈されます。
二重バックスラッシュを使用してください。つまり、system("sed -i 's/\\[-.*-]//g' error.txt");
または[[]
代わりに使用してください\[
。つまり、system("sed -i 's/[[]-.*-]//g' error.txt");
このバリアントはシェルでも機能します。