作為香港伺服器的用戶,掌握 Linux shell 文字處理是一項超能力,將會極大提高您的工作效率。命令列提供了一組豐富的工具集,可以以外科手術般的精準切割和處理文字資料。在本文中,我們將深入探討 15 個必知的 Linux shell 文字處理技巧,幫助提高您的生產力。

1. Grep:文字搜尋強力工具

Grep 是您進行閃電般快速文字搜尋的首選命令。它的基本語法是:

grep "pattern" file.txt

但 grep 的真正力量在於它的選項。例如,要執行不區分大小寫的搜尋:

grep -i "pattern" file.txt

要遞歸搜尋目錄中的所有檔案:

grep -r "pattern" directory/

2. Sed:非凡的流編輯器

Sed 是一個強大的流編輯器,可以執行複雜的文字轉換。它的基本替換語法是:

sed 's/old/new/g' file.txt

但 sed 可以做更多,比如刪除包含某個模式的行:

sed '/pattern/d' file.txt

或在匹配某個模式的行後插入文字:

sed '/pattern/a New line' file.txt

3. Awk:文字處理瑞士軍刀

Awk 是一種完整的文字處理語言,打包在一個命令中。它擅長處理結構化文字,如 CSV 或 TSV 檔案。例如,要列印 CSV 的第一欄和第三欄:

awk -F',' '{print $1, $3}' file.csv

Awk 還可以執行計算和條件判斷:

awk '{sum+=$1} END {print sum}' numbers.txt

4. Cut:列切割器

Cut 在從結構化文字中提取特定列時很方便。要切割 CSV 的第一欄和第四欄:

cut -d',' -f1,4 file.csv

5. Sort:行排序機

當您需要對文字行進行排序時,Sort 是您的好朋友。預設情況下,它按字母順序排序:

sort file.txt

但您也可以按數字排序:

sort -n file.txt

或按特定列排序:

sort -k2 -t',' file.csv

6. Uniq:重複項銷毀者

Uniq 對於從已排序的檔案中刪除重複行至關重要:

sort file.txt | uniq

7. Tr:字元轉換器

Tr 非常適合轉換或刪除字元。要將小寫轉換為大寫:

tr 'a-z' 'A-Z' < file.txt

或刪除所有數字:

tr -d '0-9' < file.txt

8. Paste:檔案合併器

Paste 可以讓您並排組合多個檔案:

paste file1.txt file2.txt

9. Wc:字數統計器

Wc 統計檔案中的行數、單詞數和字元數。要統計行數:

wc -l file.txt

10. Tee:輸出分割器

Tee 分割命令輸出,同時將其傳送到檔案和標準輸出:

command | tee output.txt

11. Find:檔案查找器

Find 是您根據各種條件定位檔案的盟友。要按名稱查找檔案:

find /path/to/directory -name "*.txt"

或查找最近 7 天內修改過的檔案:

find /path/to/directory -mtime -7

12. Xargs:命令執行器

Xargs 允許您從標準輸入構建和執行命令。一個常見的用例是將其與 find 配對:

find /path/to/directory -name "*.txt" | xargs grep "pattern"

13. Head:檔案頭部查看器

Head 顯示檔案的第一部分。要查看前 10 行:

head file.txt

或指定行數:

head -n 5 file.txt

14. Tail:檔案尾部查看器

Tail 顯示檔案的最後一部分。要查看最後 10 行:

tail file.txt

或持續監視檔案變化:

tail -f log.txt

15. Diff:檔案比較器

Diff 逐行比較兩個檔案的內容:

diff file1.txt file2.txt

掌握了這 15 個 Linux shell 文字處理利器,您將準備好應對任何文字操作挑戰。