15 個強大的 Linux Shell 文字處理技巧
作為香港伺服器的用戶,掌握 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 文字處理利器,您將準備好應對任何文字操作挑戰。