在Linux中查看文件并過(guò)濾空行的多種方法
在 Linux 中查看文件內(nèi)容時(shí)過(guò)濾掉空行有多種方法,以下是幾種常用的方法:
方法 1:使用 grep
grep -v '^$' filename
-v:反轉(zhuǎn)匹配,只顯示不匹配的行'^$':表示空行的正則表達(dá)式(行首后立即為行尾)
要同時(shí)過(guò)濾掉僅含空格或制表符的行:
grep -v '^[[:space:]]*$' filename
方法 2:使用 sed
sed '/^$/d' filename
/^$/d:刪除空行(d 表示 delete)
要同時(shí)過(guò)濾掉空白字符行:
sed '/^[[:space:]]*$/d' filename
方法 3:使用 awk
awk 'NF' filename
NF:表示"字段數(shù)量",當(dāng)行內(nèi)容為空時(shí),NF=0,評(píng)估為假,因此不打印
顯示行號(hào):
awk 'NF {print NR, $0}' filename
方法 4:使用 cat + grep
cat -s filename | grep -v '^$'
-s:壓縮連續(xù)的空白行為單行(但不會(huì)完全刪除)
方法 5:使用 printf 或 echo 測(cè)試
# 測(cè)試字符串 printf "Line1\n\nLine3\n" | grep -v '^$' # 輸出結(jié)果: # Line1 # Line3
高級(jí)技巧:保留格式同時(shí)過(guò)濾空行
帶行號(hào)顯示
grep -n '[^[:space:]]' filename | grep -v '^[[:space:]]*$'
處理多文件
grep -v '^$' file1 file2 file3
編輯文件時(shí)刪除空行
# 使用 sed 原地編輯 sed -i '/^[[:space:]]*$/d' filename # 安全備份版本 sed -i.bak '/^[[:space:]]*$/d' filename
統(tǒng)計(jì)非空行數(shù)
grep -c '[^[:space:]]' filename
處理特殊文件
# 處理 Windows 格式文件(CRLF) grep -v $'^[[:space:]]*\r$' windows_file.txt # 處理 tab 分隔文件 awk -F'\t' 'NF > 0' tab_file.tsv
永久配置忽略空行
編輯 .bashrc 添加別名:
# 添加到 ~/.bashrc
alias nlcat="awk 'NF {print NR, \$0}'"
alias nocat="grep -v '^[[:space:]]*$'"
重新加載配置:
source ~/.bashrc
使用別名:
nocat filename # 顯示無(wú)空行文件 nlcat filename # 帶行號(hào)顯示無(wú)空行文件
實(shí)際應(yīng)用示例
假設(shè)有文件 example.txt 內(nèi)容:
First line Second line with space after: Third line with tab Last line
使用高級(jí)過(guò)濾:
grep -v '^[[:space:]]*$' example.txt
輸出:
First line Second line with space after: Third line with tab Last line
這些方法可以根據(jù)具體需求選擇使用,grep -v '^$' 是最簡(jiǎn)單常用的方法,而 grep -v '^[[:space:]]*$' 或 awk 'NF' 則更全面,能夠過(guò)濾掉所有空白行。
到此這篇關(guān)于在Linux中查看文件并過(guò)濾空行的多種方法的文章就介紹到這了,更多相關(guān)Linux查看文件并過(guò)濾空行內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
centos7 esxi6.7模板實(shí)際應(yīng)用詳解
這篇文章主要介紹了centos7 esxi6.7模板實(shí)際應(yīng)用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
解決linux遠(yuǎn)程拷貝報(bào)錯(cuò)not?a?regular?file問(wèn)題
這篇文章主要介紹了解決linux遠(yuǎn)程拷貝報(bào)錯(cuò)not?a?regular?file問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
CentOs 7.3中搭建RabbitMQ 3.6單機(jī)多實(shí)例服務(wù)的步驟與使用
這篇文章主要給大家介紹了關(guān)于CentOs 7.3中搭建RabbitMQ 3.6單機(jī)多實(shí)例服務(wù)的步驟與使用的相關(guān)資料,文中將實(shí)現(xiàn)的方法介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友下面來(lái)一起看看吧。2018-03-03
Linux中切換用戶出現(xiàn)bash-4.2$問(wèn)題解決
這篇文章主要給大家介紹了關(guān)于Linux中切換用戶出現(xiàn)bash-4.2$問(wèn)題解決的相關(guān)資料,我們需要進(jìn)行一個(gè)復(fù)盤,只有發(fā)生問(wèn)題,才能嘗試著去解決問(wèn)題,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
在Linux服務(wù)器上安裝 memcached的基本操作
本文分步驟給大家詳細(xì)介紹了linux服務(wù)器上安裝memcached的操作方法,非常不錯(cuò),需要的朋友參考下吧2016-12-12
Apache安裝后出現(xiàn)服務(wù)無(wú)法啟動(dòng)(服務(wù)里啟動(dòng)出現(xiàn)錯(cuò)誤代碼1)
很多朋友都遇到過(guò)這樣的問(wèn)題Apache安裝后,顯示安裝成功,但是出現(xiàn)服務(wù)無(wú)法啟動(dòng)服務(wù)里啟動(dòng)出現(xiàn)錯(cuò)誤代碼1,怎么解決這個(gè)問(wèn)題呢,下面小編通過(guò)本文給大家詳細(xì)介紹下,需要的朋友參考下吧2021-08-08
linux下使用cmake編譯安裝mysql的詳細(xì)教程
這篇文章主要介紹了linux下使用cmake編譯安裝mysql的詳細(xì)教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10

