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 命令是一個簡單而強大的工具,可用於:
- 透過識別特定行來偵錯指令碼。
- 為文字檔案新增行號,以便更輕鬆地瀏覽。
- 為文件編製或分享準備格式化輸出。