gpt4 book ai didi

mysql - 使用 Sed 向 MySQLdump 添加引号

转载 作者:可可西里 更新时间:2023-11-01 08:39:41 24 4
gpt4 key购买 nike

我正在尝试使用 sed 在 mysql 转储中为十进制值添加引号。这些行遵循以下格式:

INSERT INTO .... 'LastName', 1356.183);

我试图将最后一个值(在本例中为 1356.183)括在引号中,这将导致以下结果:

INSERT INTO .... 'LastName', '1356.183');

到目前为止,我已经尝试了以下 sed 命令的变体,但没有成功:

sed -i '.bak' "s/, \(\d+.\d+\))/, '\1')/g" test.txt

对我应该使用的正则表达式有什么建议吗?谢谢!

最佳答案

很少有工具会将 \d 识别为代表数字,而 + 是 ERE 元字符,而不是 sed 默认支持的 BRE。只需使用 [0-9] 而不是 \d 并转义 + 以将其激活为 POSIX sed 中的 ERE 元字符:

$ sed 's/[0-9]\+\.[0-9]\+/'\''&'\''/' file
INSERT INTO .... 'LastName', '1356.183');

我还对 . 进行了转义以停用它的元字符属性,并修复了您的引号(为避免因意外后果而绊倒,从不在任何脚本周围使用双引号 - 始终使用单引号并在您需要外壳能够扩展的任何部分周围终止它们,例如您应该做sed 's/'"$var"'/whatever/',而不是 sed "s/$var/whatever/")。

关于mysql - 使用 Sed 向 MySQLdump 添加引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38593376/

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