簡體   English   中英

bash-用sed替換字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM