想知 said 点样用?呢啲常用句型你一定要识!

欸,今天要來跟大家聊聊一個在程式裡頭,尤其是處理文字的時候,很常用到的一個小工具,叫做 `sed`。別看它名字短短的,功能可是挺強大的。這幾天我剛好在整理一些文件,就用上它,覺得還不錯,來跟大家分享一下我的實踐過程。

起因

一開始,我是拿到一堆 log 文件,裡頭的格式有點亂,有些地方需要調整。本來想說用記事本打開來一個個改,但檔案實在太多,而且每個檔案都超大,打開都慢吞吞的,更別說要手動去改。後來,我就想到 `sed` 這個工具,聽說它很擅長處理這種文字替換的工作。

想知 said 点样用?呢啲常用句型你一定要识!

摸索過程

剛開始,我對 `sed` 的用法還真不熟,只知道它可以做替換,但具體怎麼用,還得查一下資料。我大概看一下網路上的教學,瞭解它的一些基本用法,像是:

  • 替換文字: 這是我最主要的需求!`sed` 可以用 `s/要被換掉的字/新的字/g` 這樣的指令來替換文字。
  • 指定行數: `sed` 也可以只針對某些行來操作,可以用行數來指定,也可以用正規表示式來篩選。
  • 直接修改檔案: `sed` 有個 `-i` 的選項,可以直接修改檔案,不用把結果輸出到另一個檔案。

實戰演練

瞭解基本用法之後,我就開始動手試試看!

我先試一個簡單的替換,把 log 裡頭的日期格式從 `YYYY-MM-DD` 換成 `MM/DD/YYYY`。我寫這樣的指令:

sed 's/([0-9]{4})-([0-9]{2})-([0-9]{2})/2/3/1/g' *

裡頭的 `([0-9]{4})-([0-9]{2})-([0-9]{2})` 是一個正規表示式,用來找出 `YYYY-MM-DD` 這樣的格式。`2/3/1` 則是把找到的年、月、日,用新的順序 `MM/DD/YYYY` 排列。最後的 `g` 表示要替換所有符合的字串,而不是只換第一個。

跑完這個指令,我打開檔案一看,日期格式都改過來,成功!

接著,我又試幾個不同的替換,像是把某些特定的字串換成空白、把某些行刪掉等等。`sed` 都能順利完成,真是太方便!

心得

經過這一番折騰,我對`sed` 的用法也算是比較熟悉。它真的是一個很實用的工具,尤其是在處理大量文字的時候,可以省下很多時間。不過,`sed` 的指令有時候還真有點複雜,尤其是正規表示式,還得多練習才能掌握得更總之,這次的實踐經驗讓我學到不少東西,也讓我對 `sed` 這個工具更加喜歡!

想知 said 点样用?呢啲常用句型你一定要识!

首頁 英文水平測試 0元領取試聽課