ファイル内の特定の単語を削除する

ファイル内の特定の単語を削除する

1 行目の andと2 行目のandと2 行目のabcd11.gmail.comandだけを削除し、残りはそのままにするにはどうすればよいでしょうか。ファイルには次のような何千行もあります。*test1:abcd14.gmail.com*fortest2:abcd19.gmail.com*asatesteg:

May 23 03:44:02 abcd11.gmail.com x.x.x.x.x: *test1: May 23 04:46:21.032: #TEST1_ENTRY:4105 THIS is a test1    
May 23 03:44:02 abcd14.gmail.com x.x.x.x.x: *fortest2: May 23 04:46:21.032: #TEST2_ENTRY:4105 THIS is a test2 
May 23 03:44:02 abcd19.gmail.com x.x.x.x.x: *asatesteg: May 23 04:46:21.032: #TESTEG_ENTRY:4105 THIS is a testeg 

答え1

sed代替品を試すこともできます

$ sed -e 's/abcd[0-9]*//g' -e 's/*test[0-9]*://g' file

数字が続くabcd[0-9]*すべてのものにマッチします。abcd*test[0-9]*:

答え2

カットを使用したソリューション:

cat $FILE | cut -d' ' -f4,6 --complement

答え3

常に同じ文を削除する必要がある場合は、

sed -e 's/abcd[0-9]*//g' -e 's/*test[0-9]*://g' file.ext

これはstdoutに出力を表示します。この出力を保存したい場合は、>命令の末尾にを追加するか、>>コンテンツを別のファイルに追加します。

sed -e 's/abcd[0-9]*//g' -e 's/*test[0-9]*://g' file.ext>new_file.ext
sed -e 's/abcd[0-9]*//g' -e 's/*test[0-9]*://g' file.ext>>new_file.ext

古いファイルを削除して新しいファイルに置き換えることができます

rm file.ext
mv new_file.ext file.ext

関連情報