Linux 中的 nl 命令:為文字檔案新增行號

Linux 提供了各種用於文字格式化和編輯的命令,其中一個特別有用的命令是 nl 命令。該工具可為文字檔案或輸入的每一行新增行號,使內容更易於閱讀和整理。


nl 命令是做什麼的?

該 nl 命令會顯示文字檔案的內容,並為 行號 預設會加到非空行。在處理指令碼或檢視大型檔案時特別有用,因為在偵錯或編輯時追蹤行號至關重要。


範例:使用 nl 命令

假設您有一個名為 hello-world.sh 的檔案,其中包含以下指令碼:

#!/bin/bash
#
#This is a demo script that greets the world
#Author: Jose Navarro Varela
#Usage: ./hello-world.sh

clear
echo hello world
exit 0

要顯示帶行號的檔案,只需執行:

nl hello-world.sh

輸出將如下所示:

     1 #!/bin/bash
     2 #
     3 #This is a demo script that greets the world
     4 #Author: Jose Navarro Varela
     5 #Usage: ./hello-world.sh
     6 clear
     7 echo hello world
     8 exit 0

預設情況下, nl 命令僅為非空行編號。


為所有行編號(包括空行)

要在編號中包含空行,請使用 -b a 選項:

nl -b a hello-world.sh

輸出將如下所示:

     1 #!/bin/bash
     2 #
     3 #This is a demo script that greets the world
     4 #Author: Jose Navarro Varela
     5 #Usage: ./hello-world.sh
     6
     7 clear
     8 echo hello world
     9 exit 0

加入自訂分隔符號

該 nl 命令允許您使用 -s 選項自訂行號與文字之間的分隔符號。例如,要加入 ... 作為分隔符號:

nl -s "..." hello-world.sh

輸出將如下所示:

1...#!/bin/bash
2...#
3...#This is a demo script that greets the world
4...#Author: Jose Navarro Varela
5...#Usage: ./hello-world.sh
6...
7...clear
8...echo hello world
9...exit 0

其他選項

該 nl 命令還提供更多自訂選項,例如:

  • -w:指定行號欄位的寬度。
  • -n:定義編號格式(右對齊、左對齊或補零)。

您可以透過下列命令檢視手冊頁,探索所有可用選項:

man nl

使用 nl 命令的常見場景

該 nl 命令廣泛應用於各種場景。以下是最常見的一些場景:

1. 偵錯 Shell 指令碼

偵錯 Shell 指令碼時,您可能需要參照發生錯誤的特定行。使用 nl 命令新增行號可以更輕鬆地定位有問題的行。

範例:

nl my-script.sh

2. 準備文件或程式碼審查

分享指令碼或程式碼片段以供審查時,新增行號可使內容更易讀,也更便於在討論中引用。

範例:

nl config.conf > numbered-config.conf

3. 檢視大型文字檔案

處理大型記錄檔、設定檔或資料檔時,新增行號有助於瀏覽和引用特定部分。

範例:

nl /var/log/syslog

4. 比較帶行號的檔案

在比較檔案之前先新增行號,可以更輕鬆地識別差異。

範例:

nl file1.txt > numbered-file1.txt
nl file2.txt > numbered-file2.txt
diff numbered-file1.txt numbered-file2.txt

5. 格式化報告輸出

該 nl 命令可用於格式化文字檔案,以用於需要編號行來保持清晰度的報告或簡報。

範例:

nl report.txt > numbered-report.txt

6. 檢視帶空行行號的指令碼

有時指令碼包含對可讀性很重要的空行。您可以使用 -b a 選項為所有行(包括空行)編號。

範例:

nl -b a script.sh

7. 為特定格式自訂行號

展示帶編號的文字檔案時,您可能需要自訂分隔符號或格式。

範例:

nl -s " -> " textfile.txt

為什麼要使用 nl 命令?

該 nl 命令是一個簡單而強大的工具,可用於:

  • 透過識別特定行來偵錯指令碼。
  • 為文字檔案新增行號,以便更輕鬆地瀏覽。
  • 為文件編製或分享準備格式化輸出。

發表留言