1. 程式人生 > >使用 AWK 去掉文本文檔中的空白行

使用 AWK 去掉文本文檔中的空白行

命令 修改 resp linu 分隔符 一個 cor 分隔 如果

Linux 操作系統中,可以使用 AWK 命令高效地處理文本文檔。AWK 命令通過執行使用 AWK 語言編寫的腳本程序,處理文本文檔。AWK 腳本程序是由模式(patterns)與相關操作(corresponding actions)組成的(即 condition {statement})。當輸入的文本文檔的一個記錄匹配一個模式時,該模式對應的操作就會在該條記錄上執行。而且,在匹配成功的前提下(即 condition 的返回值非零),相關操作的缺省行為為打印該條記錄。AWK 默認以行為記錄單位,但是這是可以修改的。並且 AWK 視一條記錄為一個域(Field)的序列。域是指一個非空白字符非回車字符的字符串,且默認情況下,空白字符與回車字符為域的分隔符。在 AWK

中,內置變量 NF 表示一行中的域的數量。所以,當一行為非空行時,NF 的值為正值,當一行為空行時,NF 的值為 0 。

因此,可以利用 AWK 這一特性,編寫如下代碼,打印所有非空行,從而實現去掉空白行的目的:

awk NF file.txt > new.txt

然而,上面代碼雖然簡潔,可能不夠清晰。如果想要更直白的代碼,可以使用正則表達式:

awk !/^$/ file.txt > new.txt

使用 AWK 去掉文本文檔中的空白行