gpt4 book ai didi

bash - Sed 命令不识别撇号

转载 作者:行者123 更新时间:2023-11-29 13:54:10 26 4
gpt4 key购买 nike

在我的 bash 脚本中,我试图将 csv 文件中的所有撇号 (') 替换为两个撇号 (''),以便将其提交到 postgres 数据库。如您所知,postgres 查询中的所有单引号都需要使用撇号进行转义。

我不能在我的查询中对我的变量使用双引号,因为它们也有双引号。因此,除了使用 sed 进行一揽子替换之外,没有简单的出路。我尝试了以下方法但无济于事:

sed "s/\'/\'\'/g" test.txt   #Does not work

sed "s/'/''/g" test.txt #Does not work

sed s/\'/"\'\'"/g test.txt #Does not work

有没有人知道我如何让它发挥作用?

最佳答案

这对你有用:

sed "s/'/''/g"  <<< "test'test"

由于您使用双引号将命令括起来,因此不需要转义撇号。

顺便说一句,如果您想使用单引号将命令本身括起来,您可以在命令中使用撇号 \047 的八进制表示:

sed 's#\047#\047\x47#g' <<< "test'test"

关于bash - Sed 命令不识别撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35485441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com