合計482行のファイルがあります。削除~~広告*~~から。内容は次のとおりです。
478|~~adt00000aa9~~~~adt0000000b~~14395189_p0.jpg
479|~~adt00000995~~44836628_p0.jpg
480|~~adt00000aae~~Miku_Collab_2_by_Luciaraio.jpg
試してみましたが、sed 's/~~adt*~//' file > new_file
すべては削除されませんでした。
最初と最後の2つの~~記号の間にあるすべての項目をどのように削除できますか?
ベストアンサー1
削除したい~~adt(something)~~
他の行にある可能性があることを考慮すると~~(something different)~~
(質問には表示されません):
$ sed 's/~~adt[^~]*~~//g' file.in >file.out
与えられたデータに対して以下が生成される。
478|14395189_p0.jpg
479|44836628_p0.jpg
480|Miku_Collab_2_by_Luciaraio.jpg
adt
最後の行をに変更すると、xxx
このコマンドが生成されます。
478|14395189_p0.jpg
479|44836628_p0.jpg
480|~~xxx00000aae~~Miku_Collab_2_by_Luciaraio.jpg
このパターンは、すべての文字の後に以外の文字が複数回出現した~~adt[^~]*~~
場合と一致し、再び一致します。最後に、各行のすべての一致が削除されるようにします。~~adt
~
~~
/g