當前位置: 妍妍網 > 碼農

收藏 !!! 運維專家總結的文本絕技

2024-12-15碼農


在Linux作業系統中,Shell指令碼和命令列工具是文本處理的強大武器。本文將帶你深入探索這些工具的實戰套用,從檔尋找到文本替換,再到數據流處理,每一個技巧都是提升你工作效率的利器。

1. 檔尋找(find) :使用 find 命令可以高效地尋找檔和目錄。

find .-name "*.txt"

可以尋找當前目錄及子目錄下所有副檔名為 .txt 的檔。

2. 文本搜尋(grep) grep 命令用於搜尋文本模式。

grep "error" log.txt

可以尋找 log.txt 檔中包含「error」的行。

3. 命令列參數轉換(xargs) xargs 將標準輸入數據轉化為命令列參數。

cat file.txt | xargs

可以將 file.txt 的內容作為參數傳遞給其他命令。

4. 排序(sort) sort 命令可以對文本進行排序。

sort -n data.txt

按數位排序 data.txt 檔。

5. 消除重復行(uniq) :與 sort 結合使用,消除重復行。

sort data.txt | uniq

可以消除 data.txt 中的重復行。

6. 字元轉換(tr) tr 命令用於字元的替換和刪除。

cat text | tr '[:upper:]' '[:lower:]'

將文本中的大寫字母轉換為小寫。

7. 按列切分文本(cut) cut 命令用於按列提取文本。

cut -f2,4 filename

提取 filename 檔的第2列和第4列。

8. 按列拼接文本(paste) paste 命令用於按列拼接文本。

paste file1 file2

file1 file2 按列拼接。

9. 統計行和字元(wc) wc 命令用於統計文本的行數、單詞數和字元數。

wc -l file.txt

統計 file.txt 的行數。

10. 文本替換(sed) sed 命令用於文本替換。

sed 's/text/replace_text/g' file.txt

全域替換 file.txt 中的「text」為「replace_text」。

11. awk數據流處理 awk 是一個強大的文本處理工具。

awk '{print $2}' file.txt

打印 file.txt 的第二列。

12. 叠代檔中的行、單詞和字元 :使用迴圈結構叠代檔內容。

while read line; do echo $line; done < file.txt

逐行讀取並處理 file.txt

13. 正規表式 :在 grep sed awk 中使用正規表式進行模式匹配。

grep -E 'regex' file.txt

使用擴充套件正規表式搜尋 file.txt

14. 輸出重新導向和管道 :使用 > | 進行輸出重新導向和管道傳輸。

cat file.txt | grep "pattern" > newfile.txt

將匹配的行重新導向到 newfile.txt

15. 文本行號顯示 :使用 cat 命令的 -n 選項顯示行號。

cat -n file.txt

顯示 file.txt 的行號。

16. 刪除空行 :使用 sed 刪除空行。

sed '/^$/d' file.txt

刪除 file.txt 中的空行。

17. 字元替換 :使用 tr 命令替換字元。

tr -d '\n' < file.txt > newfile.txt

刪除 file.txt 中的換行符。

18. 列的和 :使用 awk 計算列的和。

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

計算 file.txt 第一列的和。

19. 文本區域打印 :使用 awk 打印指定文本區域。

awk '/start_pattern/,/end_pattern/' file.txt

打印 file.txt 中處於 start_pattern end_pattern 之間的文本。

20. 頭尾命令實作 :使用 awk 實作 head tail 命令。

awk 'NR<=10{print}' file.txt

打印 file.txt 的前10行。

上面我們不僅學習了如何高效地處理文本數據,還掌握了一些能夠顯著提升工作效率的實用技巧。從簡單的文本搜尋到復雜的數據流處理,這些技巧無疑將成為你日常工作中的得力助手。記住,技術的掌握需要實踐的積累,不斷嘗試和套用這些技巧,你將能夠更加熟練地駕馭Linux環境下的文本處理任務。

近期文章: