TShopping

 找回密碼
 註冊
搜索
查看: 2337|回復: 0
打印 上一主題 下一主題

[CentOS] 用 sed 工具在 Linux 下快速完成文字檔「搜尋取代」任務

[複製鏈接]
跳轉到指定樓層
1#
發表於 2020-9-8 12:03:46 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
在 Linux 環境下可快速執行多檔案的搜尋取代任務就非 sed 莫屬了,為了能讓 sed 的功效達到極致,你還需要多瞭解 find 指令與 Regular expression 語法才能對你的搜尋取代任務更靈活的運用,以下是幾個常用的指令與說明。

學習 sed 的流程:

先練習單一檔案操作,並練習搜尋取代的語法 (不直接寫入檔案)
確認語法正確後,就可以套用 -i 選項參數可將搜尋取代的結果直接寫入該檔案
確認無誤後可搭配 find 指令進行多檔案批次搜尋取代 (功能強大、威力十足)
使用 sed 的範例:

1. 針對單一檔案進行搜尋取代 ( 針對每一行第一次出現的搜尋文字 ) ( 區分大小寫 )

  1. sed -e 's/cpu/memory/' test.txt
複製代碼

   備註 1:如上例 cpu 為搜尋字串,而 memory 為替代字串,而替代的結果會直接輸出在畫面上。
   備註 2:此範例並沒有加上
-i 選項參數,所以替代的結果並不會寫入 test.txt 檔案。

2. 針對單一檔案進行搜尋取代 ( 針對每一行第一次出現的搜尋文字 ) ( 不區分大小寫 )

  1. sed -e 's/cpu/memory/i' test.txt
複製代碼

3. 針對單一檔案進行搜尋取代 ( 針對每一行所有出現過的搜尋文字 ) ( 不區分大小寫 )

  1. sed -e 's/cpu/memory/gi' test.txt
複製代碼

4. 針對單一檔案進行搜尋取代 ( 針對每一行第一次出現的搜尋文字 ) ( 將搜尋取代的結果直接回寫檔案 )

  1. sed -i -e 's/cpu/memory/i' test.txt
複製代碼

5. 利用 find 指令找到多個符合條件的檔案,並使用 sed 做搜尋取代的動作

  1. find . -type f -exec sed -e 's/cpu/memory/ig' '{}' \;
複製代碼
注意:使用 find 指令搭配 -exec 參數時,最後一個 \; 是非常重要的關鍵,一定要加上才能正常執行。


6.
針對單一檔案進行搜尋文字cpu刪除 ( 針對每一行第一次出現的搜尋文字 ) ( 將搜尋取代的結果直接回寫檔案 )執行前

  1. sed -i -e "/cpu/d" text.txt
複製代碼
執行後



參考文章
文章出處:網頁設計,網站架設 ,網路行銷,網頁優化,SEO - NetYea 網頁設計

 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-25 13:37 , Processed in 0.052108 second(s), 25 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表