您好,登錄后才能下訂單哦!
小編給大家分享一下linux中Shell如何去掉空行,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1. grep
$ grep -v '^$' file
-v 用于輸出不匹配的內容:
$ man grep Matching Control -v, --invert-match Invert the sense of matching, to select non-matching lines.
通配符 '^里的用于表示字符串開始, 用于表示字符串結束。
2. sed
$ sed '/^$/d' file
sed 的全名是 “stream editor”,即流編輯器,是一個使用簡單緊湊的編程語言來解析和轉換文本超強實用程序。
^$ 用于匹配空白行,d 則是 sed 的其中一個命令,用于刪除匹配項:
$ man sed COMMAND SYNOPSIS ... d Delete pattern space. Start next cycle. ...
3. awk
$ awk '!/^$/' file
補充知識:
awk (其名稱得自于它的創始人阿爾佛雷德·艾侯、彼得·溫伯格和布萊恩·柯林漢姓氏的首個字母) 是一種用于處理文本的編程語言。它是一個優良的文本處理工具,工作時它會掃描文件中的每一行,查找與命令行中所給定內容相匹配的模式。如果發現匹配內容,則進行下一個編程步驟。如果找不到匹配內容,則繼續處理下一行。
awk 程序是由一系列模式--動作對組成的:
pattern { action }
回到我們的需求,^$ 用于匹配空白行,!則用來取反,從而找出非空白行,awk 的默認 action 就是 print,所以我們連 print 都不寫了。
4. tr
$ cat in.txt | tr -s '\n'
tr 是 translate 的縮寫,用于替換或刪除輸入數據集中特定字符。
-s 用于將其輸出中相同相鄰字符的序列壓縮為單個字符:
$ man tr DESCRIPTION -s, --squeeze-repeats replace each sequence of a repeated character that is listed in the last specified SET, with a single occurrence of that character
5. vi
$ vi file :g/^$/d
以上是“linux中Shell如何去掉空行”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。