用于替换“with”的UNIX Sed命令

时间:2016-03-09 11:48:15

标签: shell unix sed

我的文件test.csv包含记录`Ashish`。我想全局用单引号'Ashish'替换它。

我试过这个命令:

sed 's/`/'/g' test.csv 

但它不起作用。请指教。

4 个答案:

答案 0 :(得分:2)

tr是替换字符的正确工具:

echo '`' | tr \` \'

答案 1 :(得分:1)

尝试在外部使用双引号"并转义背景。

sed "s/\`/'/g" Test.in > Test.out

此外,如果要更改原始文件,则必须使用-i标记。

sed -i "s/\`/'/g" Test.in 

答案 2 :(得分:0)

您需要转义`sed s/\'/\`/g test.csv > out.csv 字符:

SELECT * FROM #a ORDER BY cat,name OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY;
SELECT * FROM #a ORDER BY cat,name  OFFSET 1 ROWS FETCH NEXT 1 ROWS ONLY

答案 3 :(得分:0)

失败的原因是因为无法在单个带引号的字符串中放置单引号:https://www.gnu.org/software/bash/manual/bashref.html#Single-Quotes

解决方法是:

  • sed 's/`/'"'"'/g'
    • 将单引号字符串('s/`/')与双引号字符串("'")和另一个单引号字符串('/g')或
    • 连接在一起
  • sed 's/`/'\''/g'
    • 将单引号字符串与文字单引号和另一个单引号字符串连接起来,或者
  • 其他答案中给出的其他引用策略
相关问题