shell实战(二)——从一个表读出多行数据插入另一个表

需求如题,一开始觉得好简单,上手一写,发现纯dml貌似无法完成,写了个小命令


1、-e 在shell中直接执行sql语句

mysql -h localhost -u root -e "select * from ad.am_account" > xjs_data.txt

读出的数据:id      col2     col3     telephone  ...

     1 XX     XX    18888888888

     ...


2、使用强大的awk,注意print后的输出使用逗号连接的,列号是从1开始的,0表示整行

cat xjs_data.txt | awk '{print "insert into ad.account(account_id, telephone) values(", $1, ",", $4 ")" }' > xjs_data2.txt


3、从xjs_data2.txt中就能得到需要的sql

insert into ad.account(account_id, telephone) values( 1 , 13071717171)
insert into ad.account(account_id, telephone) values( 2 , 13999999999)
insert into ad.account(account_id, telephone) values( 3 , 15001256732)
insert into ad.account(account_id, telephone) values( 4 , 13812345678)

... ...

你可能感兴趣的:(shell)