使用多個 sed 指令進行文字操作

使用多個 sed 指令進行文字操作

我有一個 bash 文件,我想在其中進行一些更改。

sed -i 's/      /    /g' testfile
sed -i -e 's/#[a-z]$//' -e '/^$/d' testfile
sed -i 's/ *$//' testfile
sed '/##=/ r header' testfile

在第一個指令中,想用空格取代 TAB ,然後刪除註解(還有以 ## 開頭的註解)和空白行。之後想在我的文件中的指定模式之後插入一個文件。命令順序有問題嗎?

答案1

您可以在一次 sed 中給予多個指令,例如:

sed 's/\t/    /g;/^ *$/d;s/^#/NODIESE/' testfile

這一行

  1. 將製表符替換為空格
  2. 刪除以空內容開頭的行(或空白行)
  3. 將開頭處的 Dash 替換為 NODIESE

因此您的測試檔案僅被處理一次,並且您僅啟動 sed 一次。

相關內容