[英]bash - replacing string with sed
由於某些神秘的原因,我的CSV數據中的某些元素顯示為s/stWgvN52??f2& ?"
s/stWgvN52??f2& ?"
而不是stWgvN522tw0JtZZnyXj
,因為我有,它弄亂了文件;
設置為CSV分隔符。
我嘗試使用sed
替換有缺陷的字符串,如下所示:
$ sed -i 's/stWgvN52??f2& ?"/stWgvN522tw0JtZZnyXj/g' file.csv
但出現以下錯誤:sed:1:“ access_logs_2014-04.csv”:命令a期望\\后跟文本
是什么原因?
使用-i
選項時,必須指定獲取的備份文件的擴展名。 某些版本的sed
期望將擴展名直接附加到-i
選項,因此您編寫的內容將起作用。 但是其他版本(例如OS X上的版本)要求將其作為單獨的選項,因此您必須編寫:
sed -i '' 's/stWgvN52??f2& ?"/stWgvN522tw0JtZZnyXj/g' file.csv
指定您不需要備份文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.