sed -e 's/\(~\).*\(~\)// コマンドはテキストファイルでどのようなことをしますか?

sed -e 's/\(~\).*\(~\)// コマンドはテキストファイルでどのようなことをしますか?

このコマンドは sed -e 's/\(~\).*\(~\)// テキストファイルで何をしますか?私は理解できません。仕事で会ったことがあります。

ベストアンサー1

このコマンド(末尾に欠落している単一引用符を追加する場合)は、ファイル内のすべての行を端末に印刷しますが、行に少なくとも~2つの(チルダ)文字がある場合、最初と最後の間のビットは置換を~通過します。sを削除するには、コマンド()を入力してくださいsed

例:

$ cat file
1 2 3 ~ 4
1~2~3
Here is ~ the last ~ line ~ THE END
$ sed -e 's/\(~\).*\(~\)//' file
1 2 3 ~ 4
13
Here is  THE END

ただし、\(必須ではなく\)(式に逆参照が使用されていないため)、-e省略することもできます(式は1つだけなので)。したがって、コマンドは次のようになります。

sed 's/~.*~//' file

だからそうではありませんするファイル自体のすべての内容。ただし、ファイルの内容を読み取り、変更して処理されたテキストを生成し、sed ... >newfileリダイレクト()を使用して新しいファイルに保存することはできます。


逆参照できるこのコマンドで次のように使用します。

sed 's/\(~\).*\1//' file

つまり、aと一致し、他のテキストと一致し、最初のグループ(チルダ)~で一致したものと一致します。\(...\)ただし、これは入力時間を節約できず、コマンドを維持したりわかりやすくしたりすることがないため、役に立ちませんsed 's/~.*~//' file

おすすめ記事