Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 指令列文字搜尋與取代大全:grep/sed/find/perl/vim 多工具實戰速查表

編輯:關於 Linux

文字處理是 Linux 系統管理核心技能。本文彙整 grep 搜尋、sed 流編輯、find + perl 跨檔案批次、vim 互動式替換的完整語法、常用範例與最佳實踐,供快速查閱與腳本撰寫參考。

文字處理工具對比圖

grep:模式搜尋

# 遞迴搜尋關鍵字,顯示行號、檔名
grep -rn "keyword" ./

# 僅列出符合的檔名
grep -rl "keyword" ./

# 反向匹配 (排除)
grep -v "^#" file.conf | grep -v "^$"

# 固定字串 (不解析正則,速度快)
grep -F "literal.string" ./

# 統計匹配行數
grep -c "error" /var/log/syslog

sed:流編輯器 (單檔/管道)

任務指令說明
全域替換 (原地修改) sed -i 's/old/new/g' file -i 就地修改,g 行內全部
批次替換多檔 (配合 grep) sed -i 's/old/new/g' $(grep -rl "old" .) 先找檔再改,避免改到二進位檔
刪除行首空白 sed 's/^[[:space:]]*//g' file [[:space:]] 包含空格、Tab
匹配行後插入新行 sed '/pattern/a\\new line' file a\\ 附加 (append)
匹配行前插入新行 sed '/pattern/i\\new line' file i\\ 插入 (insert)
首行插入 sed -i '1i\\header' file
末行插入 sed -i '$a\\footer' file
使用變數替換 (雙引號) sed -e "s/$var1/$var2/g" file Shell 先展開變數再傳給 sed
刪除空行、空白行、註解行 grep -v '^#' file | sed '/^[[:space:]]*$/d' 管道串聯

find + perl:跨檔案批次替換 (最強組合)

# 當前目錄所有 .txt 替換
find -name '*.txt' | xargs perl -pi -e 's|old|new|g'

# 遞迴所有 .html 替換
find . -type f -name '*.html' | xargs perl -pi -e 's|old|new|g'

# perl 優勢: 正則功能最強、支援 Unicode、單行指令即可完成複雜邏輯
perl -pi -e 's/\b(\d{4})-(\d{2})-(\d{2})\b/$3.$2.$1/g' *.log  # 日期格式轉換

vim:互動式視覺替換

範圍指令說明
當前行 :s/old/new/g
全檔 :%s/old/new/g % 代表所有行
視覺選取區塊 V 選取 → :s/old/new/g 自動帶入 '<,'>
指定行號範圍 :10,31s/old/new/g
確認式替換 :%s/old/new/gc c 逐個確認 (y/n/a/q/l)
顯示/隱藏行號 :set nu / :set nonu

工具選擇決策樹

  • 單檔、簡單替換 → sed -i
  • 多檔、跨目錄、複雜正則 → find | xargs perl -pi
  • 互動式、需視覺確認、結構化編輯 → vim
  • 單純搜尋、統計、管道前置 → grep
  • CSV/JSON/結構化資料 → awk、jq、csvkit、miller

安全最佳實踐

  • 大量替換前**先備份**:cp -r target_dir target_dir.bak
  • 先**試跑不寫入**:sed 's/old/new/g' file (無 -i) 或 perl -pe 's/old/new/g' file
  • 使用 grep -rl 確認影響檔案清單
  • 二進位檔排除:find -type f -exec file {} \\; | grep -v text

熟練組合這五大工具,即可應對 99% 的 Linux 文字處理需求。

Copyright © Windows教程網 All Rights Reserved