刪除檔案中的某個單字

刪除檔案中的某個單字

如何從下面的第 1 行、第2 行和第 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

使用 cut 的解決方案:

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

答案3

如果您需要刪除始終相同的句子,您可以嘗試

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

如果您想要儲存此輸出,這將顯示標準輸出中的輸出,只需將其新增>至指令的細部或>>將內容附加到另一個文件

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

相關內容