Shell UNIX Sed命令,将`替换为';
我的文件Shell UNIX Sed命令,将`替换为';,shell,unix,sed,Shell,Unix,Sed,我的文件test.csv包含记录`Ashish`。我想用单引号取代它 我试过这个命令: sed 's/`/'/g' test.csv 但它不起作用。请告知。尝试在外部使用双引号“,并避开backtic sed "s/\`/'/g" Test.in > Test.out 此外,如果要更改原始文件,必须使用-i标志 sed -i "s/\`/'/g" Test.in tr是替换字符的正确工具: echo '`' | tr \` \' sed s/\'/\`/g test.csv &
test.csv
包含记录`Ashish`
。我想用单引号取代它
我试过这个命令:
sed 's/`/'/g' test.csv
但它不起作用。请告知。尝试在外部使用双引号
“
,并避开backtic
sed "s/\`/'/g" Test.in > Test.out
此外,如果要更改原始文件,必须使用-i
标志
sed -i "s/\`/'/g" Test.in
tr是替换字符的正确工具:
echo '`' | tr \` \'
sed s/\'/\`/g test.csv > out.csv
您需要转义
'
和`
字符:
echo '`' | tr \` \'
sed s/\'/\`/g test.csv > out.csv
失败的原因是无法在单引号字符串中放置单引号:
解决办法是:
sed's/`/'/g'
- 将单引号字符串(
)与双引号字符串('s/`/'
)和另一个单引号字符串(“
)连接起来,或'/g'
- 将单引号字符串(
sed's/`/'\''/g'
- 将单引号字符串与文字单引号和另一个单引号字符串连接,或
- 其他答案中给出的其他引用策略
,
s,否则您无法在,
分隔的脚本中转义,
,但通过这样做,并且不使用双引号替换,您现在也必须转义回勾。