Удалить определенное слово в файле

Удалить определенное слово в файле

Как мне удалить только abcd11.gmail.comи *test1:из строки 1 и abcd14.gmail.comи *fortest2:из строки 2 и abcd19.gmail.comи *asatesteg:из строки 2 снизу, оставив остальное как есть? У меня тысячи строк в файле, например:

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

Связанный контент