我有一個Bash腳本,用於引入多個回購以創建項目工作流程的新實例,該實例基於從命令行提供的信息執行一些字符串替換。Bash腳本在ZSH中導致問題的sed用法
一位同事使用ZSH,並且遇到了在腳本中使用sed
似乎是因爲問題。具體來說,它似乎是它不處理正則表達式?例如...
# Author Name.
if [[ $authorname ]]
then
sed -i "" "s/Author Name/$authorname/g" "$file"
fi
導致以下錯誤:
sed: can't read "s/Author Name/$authorname/g" : No such file or directory
我們發現,通過添加-e
標誌大多數字符串替換錯誤走的,但他仍然得到了「未找到」錯誤的數量...
sed: can't read : No such file or directory
有沒有更好的方法來執行Bash和ZSH友好的字符串替換?
這將盡管如此,BSD失敗了。在平臺上使用'-i'並不是真正的便攜方式。 – tripleee
另外,'sed -i「」...'完全等同於'sed -i ...'。 '-i「」'在引用移除後與'-i'相同。 – chepner