使用Linux bash命令統計檔案行數


概述

我們有時需要確定特定文字文件的大小。例如,如果我們試圖弄清楚某個電子郵件有多長,我們可以使用該郵件的行數來幫助我們估計其大小。Linux 有幾種不同的方法可以確定文字文件的長度。

我們將仔細研究一些計算特定檔案行數的最常用方法。

設定

在本快速教程中,我們將使用名為“programing.txt”的文字檔案,其中包含當今使用的一些最流行的計算機語言。

$ cat programming.txt
JavaScript
Java
C
Python
C#
PHP
C++
Go
R
Ruby

如果我們手動計算單詞數,我們會得到10。但是如果我們手動計算,隨著單詞數量的增加,它很快就會變成一項繁瑣的任務,難以完成。但是,有一些基於命令的程式可以幫助我們自動計算單詞數。

wc 命令

要計算字元數、換行符等,分別使用 wc -l、wc -w 和 wc -c 命令。

我們使用 wc 命令來計算檔案中的行數。新增 -l 標誌會給出總行數和檔名。

我們可以使用 wc -l (單詞計數) 命令檢視檔案中共有多少行。

$ wc -l programming.txt
10 programming.txt

從輸出中我們可以看到,它輸出了數字 10,表示總行數,以及檔名 programming.txt。

我們可以使用 shell 將 program.txt 檔案重定向到 wc -l 命令的標準輸出。這將給出字元數,而不會顯示檔名。

$ wc -l < programming.txt
10

另一種在檔案中執行命令的常用方法是使用cat 命令 並將它們透過 bash 直譯器傳遞。

$ cat programming.txt | wc -l
10

sed 命令

sed 是一種對檔案執行基本轉換的工具。它主要用於在給定的輸入中查詢和替換字串。您也可以用它來計算特定輸入中的行數。

sed 可用於列印每一行的行號。

sed -n ‘=’

我們可以使用“sed”命令、“-n”選項和等號 (=) 來列印行號而不顯示檔案的文字。

$ sed -n '=' programming.txt
1
2
3
4
5
6
7
8
9
10

從結果中我們可以看到,該命令只輸出了行數。但是,這種方法在處理大型文字文件時擴充套件性不好。

sed -n ‘$=’

我們通常更喜歡使用-c 選項'=' 引數來計算文字文件的總行數。sed 命令的輸出是文件的總行數。

$ sed -n '$=' programming.txt
10

awk 命令

awk 命令將每個輸入檔案視為一個單獨的記錄。然後可以透過引用內建 awk 變數 NR(記錄數)在最後列印記錄數。

$ awk 'END { print NR }' programming.txt
10

cat 命令

cat (連線) 命令將多個檔案作為引數,並將它們列印到標準輸出。它使用 -n 選項顯示每個檔案的行及其對應的編號。

$ cat -n programming.txt
   1     JavaScript
   2     Java
   3     C
   4     Python
   5     C#
   6     PHP
   7     C++
   8     Go
   9     R
   10    Ruby

我們可以看出,該命令輸出了行號和檔案的內容。但是,這種方法對於較大的檔案並不實用。

結論

我們已經看到了使用Bash 統計文字檔案行數的幾種不同方法。

在處理大型檔案時,一些顯示檔案內容的命令會變得低效且不實用。

wc -l 命令是最常用的,也是查詢特定檔案行號最簡單的方法。

更新於:2023年11月3日

49K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.