linux shell 刪除文字 較長行

2021-10-12 12:53:49 字數 1029 閱讀 5456

目錄

方法一: 使用awk命令的length()函式

方法二: 使用grep命令 

方法三: 使用sed命令

備註:有的時候需要對檔案執行刪除刪除操作,這個時候比較常用的會使用vi命令中的dd命令,比如先執行10g(跳轉到第10行),然後再執行20dd(刪除20行),但實際情況未必是這麼常規,比如說,要刪除檔案中,某行長度超過200個字元的行,如果文字比較小,還好,如果是幾萬行,幾十萬行的呢? 這個想用vi就不現實了。 我然想到的辦法就是:比如說,通過sed,awk,egrep命令來達到目的。 舉個簡單例子。

假如說如下文字檔案,要將其中長度為5字元以上的給刪除掉。

root@linux# cat data122

3334444

55555

666666

7777777

88888888

root@linux# cat data | awk ''122

3334444

root@linux# cat data | egrep -w '^.'122

3334444

root@linux# cat data | sed -n '/^.\/!w newfile'

root@linux# cat newfile122

3334444

1.文字需要時 unix 格式 不能是windows格式

2.使用awk,grep命令的時候,可以將處理好的檔案重定向到另外乙個新檔案中

3.egrep -w引數,表示僅跟模式匹配的單詞

4.^. 表示以任意字元開頭的行,這個和-w命令匹配使用,這個很關鍵,否則找不到

4.!w  !表示所有模式不匹配的,w是輸出,寫入到新檔案newfile檔案中

較 鍊錶刪除重複元素

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 這道題首先要注意,重複元素乙個不留,且開頭元素可能重複,所以如果我們直接在原煉表上操作會比較麻煩。這裡採用選擇非重複節點構建新鍊錶的方式進行刪除...

linux shell之唯讀變數,刪除變數,

唯讀變數 shell 程式設計中可以使用關鍵字readonly 命令將變數定義為唯讀變數,唯讀變數的意思是變數值不能被修改。如下是shenll 程式設計中唯讀變數demo 執行指令碼會報錯,在指定testurl 為唯讀變數後,無列印個出修改值,而是直接報錯 readonly variable 刪除變...

Linux shell 文字處理工具

本文將介紹linux下使用shell處理文字時最常用的工具 find grep xargs sort uniq tr cut paste wc sed awk 提供的例子和引數都是最常用和最為實用的 我對shell指令碼使用的原則是命令單行書寫,盡量不要超過2行 如果有更為複雜的任務需求,還是考慮p...