在Linux中查看文件并過濾空行的多種方法
在 Linux 中查看文件內(nèi)容時過濾掉空行有多種方法,以下是幾種常用的方法:
方法 1:使用 grep
grep -v '^$' filename
-v:反轉(zhuǎn)匹配,只顯示不匹配的行'^$':表示空行的正則表達(dá)式(行首后立即為行尾)
要同時過濾掉僅含空格或制表符的行:
grep -v '^[[:space:]]*$' filename
方法 2:使用 sed
sed '/^$/d' filename
/^$/d:刪除空行(d 表示 delete)
要同時過濾掉空白字符行:
sed '/^[[:space:]]*$/d' filename
方法 3:使用 awk
awk 'NF' filename
NF:表示"字段數(shù)量",當(dāng)行內(nèi)容為空時,NF=0,評估為假,因此不打印
顯示行號:
awk 'NF {print NR, $0}' filename
方法 4:使用 cat + grep
cat -s filename | grep -v '^$'
-s:壓縮連續(xù)的空白行為單行(但不會完全刪除)
方法 5:使用 printf 或 echo 測試
# 測試字符串 printf "Line1\n\nLine3\n" | grep -v '^$' # 輸出結(jié)果: # Line1 # Line3
高級技巧:保留格式同時過濾空行
帶行號顯示
grep -n '[^[:space:]]' filename | grep -v '^[[:space:]]*$'
處理多文件
grep -v '^$' file1 file2 file3
編輯文件時刪除空行
# 使用 sed 原地編輯 sed -i '/^[[:space:]]*$/d' filename # 安全備份版本 sed -i.bak '/^[[:space:]]*$/d' filename
統(tǒng)計非空行數(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 # 顯示無空行文件 nlcat filename # 帶行號顯示無空行文件
實際應(yīng)用示例
假設(shè)有文件 example.txt 內(nèi)容:
First line Second line with space after: Third line with tab Last line
使用高級過濾:
grep -v '^[[:space:]]*$' example.txt
輸出:
First line Second line with space after: Third line with tab Last line
這些方法可以根據(jù)具體需求選擇使用,grep -v '^$' 是最簡單常用的方法,而 grep -v '^[[:space:]]*$' 或 awk 'NF' 則更全面,能夠過濾掉所有空白行。
到此這篇關(guān)于在Linux中查看文件并過濾空行的多種方法的文章就介紹到這了,更多相關(guān)Linux查看文件并過濾空行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux下gdb調(diào)試打印數(shù)組元素以及說明
這篇文章主要介紹了Linux下gdb調(diào)試打印數(shù)組元素以及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
在Linux服務(wù)器下查看公網(wǎng)IP地址的方法
在接口對接的時候,很多公司需要對方提供公網(wǎng)ip地址來配置對應(yīng)的IP白名單,那么在Linux環(huán)境下怎么查看對應(yīng)服務(wù)器的公網(wǎng)IP呢,所以本文給大家介紹了在Linux服務(wù)器下查看公網(wǎng)IP地址的方法,需要的朋友可以參考下2023-12-12
Linux下Apache安裝/增加mod_rewrite模塊的方法
如果你的服務(wù)器apache還沒有安裝,那很簡單,在編譯apache時將mod_rewrite模塊編譯進(jìn)去就可以。如果你的apache已經(jīng)安裝好了,現(xiàn)在只想編譯出mod_rewrite.so模塊,在apache中進(jìn)行加載,下面介紹這個方法。2010-07-07
Yum中報錯:“pycurl.so: undefined symbol: CRYPTO_num_locks”的問題排查
這篇文章主要給大家介紹了在Yum中報錯: "pycurl.so: undefined symbol: CRYPTO_num_locks"的問題排查的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-06-06

