Linux
xargs sed 正在重命名文件而不是替換內容
複雜命令:
git ls-files | grep -E '\.(ts|xml|json|html|js|scss)$' | xargs sed -ie s/##tag##/1.0.0/g
在過去,它以正確的方式工作和替換。
所以文件version-info.html:
<p>Version: ##tag##</p>
現在它創建了第二個文件。
- 版本資訊.html
- 版本資訊.htmle
為什麼最後
e
加一個?當我刪除時
-ie
,它會顯示內容。當我只刪除e
from-ie
時,會出現錯誤。提前感謝您的想法!
提供
-ie
tosed
意味著就地進行更改,同時保留名為 filename+ 的備份文件e
。從
man sed
-i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied)
如果您想使用任何其他參數,
sed -i
則必須將它們分開使用,或者至少不要將該參數放在後面-i
,以免被解釋為備份文件的後綴。sed -i.bak -e ...
為了創建以
.bak
副檔名作為後綴的備份文件,或sed -i -e ...
不創建任何備份文件。