このコマンドは 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
。