亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

刪除文本文件中包含特定字符串的行

刪除文本文件中包含特定字符串的行

刪除文本文件中包含特定字符串的行如何使用sed刪除文本文件中包含特定字符串的所有行?
查看完整描述

3 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

若要刪除該行并將輸出打印為標準輸出,請執行以下操作:

sed '/pattern to match/d' ./infile

若要直接修改文件,請執行以下操作:

sed -i '/pattern to match/d' ./infile

要直接修改文件(并創建備份):

sed -i.bak '/pattern to match/d' ./infile

對于MacOSX和FreeBSD用戶:

sed -i '' '/pattern/d' ./infile


查看完整回答
反對 回復 2019-06-19
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

除了刪除具有特定字符串的行之外,還有許多其他方法可以刪除行。sed:

AWK

awk '!/pattern/' file > temp && mv temp file

Ruby(1.9+)

ruby -i.bak -ne 'print if not /test/' file

Perl

perl -ni.bak -e "print unless /pattern/" file

shell(bash 3.2及更高版本)

while read -r linedo
  [[ ! $line =~ pattern ]] && echo "$line"done <file > o
mv o file

GNUgrep

grep -v "pattern" file > temp && mv temp file

當然還有sed(打印反向比實際刪除快):

sed -n '/pattern/!p' file


查看完整回答
反對 回復 2019-06-19
?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

您可以使用sed替換文件中的行。但是,它似乎比將grep用于逆文件,然后將第二個文件移動到原始文件中要慢得多。

G.

sed -i '/pattern/d' filename

grep -v "pattern" filename > filename2; mv filename2 filename

無論如何,第一個命令在我的機器上要花費3倍的時間。


查看完整回答
反對 回復 2019-06-19
  • 3 回答
  • 0 關注
  • 4023 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號