mysql_sed_使用sed提取mysql备份的一行部分

博客内容展示了如何利用sed和grep命令从SQL脚本中提取特定数字相关的行和插入语句,例如提取与239560相关的记录。通过示例,解释了sed的替换操作和grep的正则表达式匹配,帮助读者理解如何在shell脚本中进行文本处理。

根据Iain的回答,我想出了这个sed技巧……

$sed 's/\(INSERT[^(]*\).*\((239560,[^)]*)\),.*/\1\2/' sample.sql | tee 1-record.sql

INSERT INTO usertext VALUES (239560, 2, 3, 4)

$

不使用sed的变化…

您可以提取仅与该一个数字匹配的某些行/插入的值.

$cat sample.sql

INSERT INTO usertext VALUES (101, field2 etc), (102, field2 etc), (239560, 2, 3, 4), (5, 8, 9)

INSERT INTO usertext VALUES (101, field2 etc), (102, field2 etc), (1239560, 2, 3, 4), (5, 8, 9)

$egrep -o '(\(239560\,[^)]+\))' sample.sql

(239560, 2, 3, 4)

$

如果你使用-n开关和grep来匹配匹配行,那么插入的其余部分可以很容易地编写脚本,然后将所有内容剪切到第一个(

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值