關(guān)于我們

質量為(wèi)本、客戶為(wèi)根、勇于拼搏、務(wù)實創新(xīn)

< 返回新(xīn)聞公共列表

Shell中怎麽删除文本比較長的行

發布時(shí)間(jiān):2021-04-01 16:41:32

本文主要介紹如(rú)何在Shell中删除長行,非常詳細,有一(yī)定的參考價值。有興趣的朋(péng)友一(yī)定要看!

Shell中如(rú)何删除文本比較長的行的實現(xiàn)方法

有時(shí)需要删除文件。這(zhè)時(shí)常用vi命令中的dd命令,比如(rú)10G(跳(tiào)轉到第10行),然後是20dd(删除第20行)。但(dàn)是,實際情況未必如(rú)此套路(lù)。例如(rú),如(rú)果要删除一(yī)個(gè)文件中長度超過200個(gè)字符的一(yī)行,如(rú)果文本比較小,那就(jiù)可以了(le),如(rú)果是幾萬行或者幾十萬行。想用vi是不現(xiàn)實的。我想到的方式是:比如(rú)通過sed,awk,egrep命令來(lái)達到目的。舉個(gè)簡單的例子(zǐ)。

假設下(xià)面的文本文件,删除長度超過5個(gè)字符的。

root@linux#catdata

一(yī)個(gè)

22

333

4444

55555

666666

7777777

88888888方法一(yī): 使用awk命令的length()函數

root @ Linux # catdata | awk“{ if(length($ 0)=4)print $ 0 }”

一(yī)個(gè)

22

333

4444方法二: 使用grep命令

root@linux#catdata|egrep-w'^.{1,4}'

一(yī)個(gè)

22

333

4444方法三: 使用sed命令

root@linux#catdata|sed-n'/^.\{5,\}/!' wNewFile '

root@linux#catNewFile

一(yī)個(gè)

22

333

4444備注:

1.使用awk,grep命令時(shí),可以将處理(lǐ)過的文件重定向到另一(yī)個(gè)新(xīn)文件

2.參數,這(zhè)意味着單詞隻匹配模式

3.表示以任何字符開始的一(yī)行。這(zhè)與-w命令配合使用。這(zhè)很關(guān)鍵,否則就(jiù)找不到了(le)

4.w!指示所有模式都不匹配,w是輸出,寫入新(xīn)文件新(xīn)文件

“如(rú)何删除Shell中的長行”這(zhè)篇文章的内容就(jiù)這(zhè)麽多了(le)。感謝閱讀!希望分(fēn)享的内容對大家有幫助,更多相關(guān)知識。歡迎關(guān)注微子(zǐ)網絡!


/template/Home/Zkeys/PC/Static