首頁 > 文字處理與搜尋 > sed

sed 命令指南:流編輯器的使用

`sed` 命令(流編輯器)是一種強大的非交互式文本處理工具,用於編輯文本流(通過文件或管道傳遞的輸入)。它可以高效地執行搜索、替換、刪除或插入文本等操作,而無需打開文件。它是自動化文本轉換的關鍵工具,常用於 Shell 腳本中。通過本指南,您將學習到 `sed` 命令的基本用法及利用正則表達式的高級功能。

sed 概述

`sed` 從輸入流中逐行讀取,根據指定的規則(腳本)進行處理,然後將結果發送到標準輸出。原始文件一般不會被修改,若要將更改內容保存到文件中,則需要使用重定向(`>`)或 `-i` 選項。

sed 的主要角色

`sed` 命令主要用於以下目的:

主要應用領域

  • 文本替換/置換: 將文件中的特定字符串替換為其他字符串。(最常見的用途)
  • 行刪除/添加: 刪除包含特定模式的行,或在特定位置插入新行。
  • 模式匹配及輸出: 僅輸出符合特定模式的行,或僅處理特定範圍的行。
  • 文件格式變更: 轉換文本文件的格式或重新排列數據。
  • 腳本自動化: 在批量處理大量文本文件的 Shell 腳本中發揮核心作用。

sed 的基本結構

`sed` 的基本命令結構為 `sed [OPTIONS] '腳本' [INPUT_FILE...]`。其中 '腳本' 以 `[地址]命令[參數]` 形式表示,而最重要的命令是 `s`(substitute,替換)。

主要 sed 命令選項

`sed` 命令提供了多種選項,以靈活的文本編輯方式處理輸入、指定腳本和控制輸出。

1. 腳本和文件處理選項

2. 替換(s) 命令標誌

3. 其他有用的命令

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`sed` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用示例

通過 `sed` 命令的多種應用示例,學習如何有效地搜索、替換和刪除文本文件的內容。

將文件內所有 'old' 替換為 'new'

sed 's/old/new/g' example.txt

在 `example.txt` 文件中將所有單詞 'old' 替換為 'new',並將結果顯示到標準輸出。

直接修改原始文件並替換字符串

sed -i.bak 's/DEBUG=true/DEBUG=false/' config.conf

在 `config.conf` 文件中將 'DEBUG=true' 直接更改為 'DEBUG=false',並生成原始文件的備份(`.bak` 擴展名)。

刪除特定行號的行

sed '5d' log.txt

在 `log.txt` 文件中刪除第 5 行並輸出結果。

刪除範圍內的行

sed '10,20d' document.txt

在 `document.txt` 文件中刪除從第 10 行到第 20 行的內容並輸出。

刪除包含特定模式的行

sed '/WARNING/d' errors.log

在 `errors.log` 文件中刪除所有包含 'WARNING' 單詞的行並輸出結果。

在文件內容中插入標題行

sed '1i\Name,Age,City' data.csv

在 `data.csv` 文件的第一行上方插入新的標題行。

刪除空行

sed '/^$/d' text.txt

在 `text.txt` 文件中刪除所有空行。`^$` 是表示空行的正則表達式。


相同類別命令