Sed

同時在同一文件上執行多個 sed 命令

  • September 5, 2017

要將字元串 foo 的所有出現更改為 bar 在我使用的目錄中的所有文件中

sed -i -- 's/foo/bar/g' *

發現這裡

但我也想將 NAME 更改為 name 等。我試過了,

sed -i – ’s/foo/bar/g’ * ; sed -i – ’s/NAME/name/g’ *

這會創建新文件。我怎樣才能得到這個命令來重寫原始文件 foo 替換為 bar 並且 NAME 替換為 name 然後會有其他替換,而不創建新文件?

您可以sed在一次呼叫中給出多個表達式:

sed -e 'expr' -e 'expr' -e ...

在你的情況下:

sed -e 's/foo/bar/g' -e 's/NAME/name/g'

表達式將從左到右依次應用於每一行輸入。

引用自:https://unix.stackexchange.com/questions/390437