免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: jacson007
打印 上一主题 下一主题

求批量插入数据执行脚本 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-07-28 11:30 |只看该作者

回复 #9 00306 的帖子

/usr/bin/test 是一个脚本
AB均为常量
A=./usr/bin/test
B中间包含汉字,所以可能需要加单引号或者双引号

[ 本帖最后由 jacson007 于 2009-7-28 11:31 编辑 ]

论坛徽章:
0
12 [报告]
发表于 2009-07-28 11:32 |只看该作者

回复 #10 jacson007 的帖子

你的/usr/bin/test 就是数据文件是吧

那这样就可以了,不用脚本的:

awk  -v B=B_FILE -v A=A_FILE  '!a[$0]++{print A " "$0" "B}'   /usr/bin/test

[ 本帖最后由 wtuter 于 2009-7-28 11:34 编辑 ]

论坛徽章:
0
13 [报告]
发表于 2009-07-28 11:37 |只看该作者
这分真难赚,楼主你能不能把你的要求再详尽一点,这样大家才能帮你解决,省得耽误时间

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
14 [报告]
发表于 2009-07-28 11:38 |只看该作者
  1. sed "s#.*#$A & B#e' urfile
复制代码

[ 本帖最后由 blackold 于 2009-7-28 11:42 编辑 ]

论坛徽章:
0
15 [报告]
发表于 2009-07-28 11:42 |只看该作者

回复 #11 wtuter 的帖子

[root@localhost ~]$ cat 1
13800000000
13700000000
13600000000

[root@localhost ~]$ cat 2
生活播报测试",详询10086

要达到的效果如下:

[root@localhost ~]$ ./usr/bin/test 13800000000 '你好,"生活播报"测试,详询10086'
[root@localhost ~]$ ./usr/bin/test 13700000000 '你好,"生活播报"测试,详询10086'
[root@localhost ~]$ ./usr/bin/test 13600000000 '你好,"生活播报"测试,详询10086'

最好能去除重复的号码。
./usr/bin/test是执行脚本的命令,是包括中英文的文字。

论坛徽章:
0
16 [报告]
发表于 2009-07-28 11:44 |只看该作者

回复 #14 jacson007 的帖子

说了不用脚本


[]awk '!a[$0]++{getline A< 2;print $0" "A}' 1
1390000000 10086
1380000000 10086
1370000000 10086
1360000000 10086
1350000000 10086
1370008888 10086
[]
[]
[]
[]cat 1
1390000000
1380000000
1370000000
1360000000
1350000000
1390000000
1370008888
[]
[]
[]cat 2
10086
[]
[]
[]
[]awk '!a[$0]++{getline A< 2;print $0" "A}' 1
1390000000 10086
1380000000 10086
1370000000 10086
1360000000 10086
1350000000 10086
1370008888 10086

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-24 06:20:00
17 [报告]
发表于 2009-07-28 11:45 |只看该作者

回复 #14 jacson007 的帖子

这种意思?

[oracle@Minerva practice]$ echo $A
./usr/bin/test
[oracle@Minerva practice]$ echo $B
"生活播报测试",详询10086
[oracle@Minerva practice]$ sort -u test|sed "s#.*#$A & \'$B\'#"
./usr/bin/test 1350000000 '"生活播报测试",详询10086'
./usr/bin/test 1360000000 '"生活播报测试",详询10086'
./usr/bin/test 1370000000 '"生活播报测试",详询10086'
./usr/bin/test 1370008888 '"生活播报测试",详询10086'
./usr/bin/test 1380000000 '"生活播报测试",详询10086'
./usr/bin/test 1390000000 '"生活播报测试",详询10086'
[oracle@Minerva practice]$


抄了13楼的代码

[ 本帖最后由 Minsic 于 2009-7-28 11:48 编辑 ]

论坛徽章:
0
18 [报告]
发表于 2009-07-28 11:49 |只看该作者

  1. cat 1.txt
  2. 1390000000
  3. 1380000000
  4. 1370000000
  5. 1360000000
  6. 1350000000
  7. 1390000000
  8. 1370008888

  9. B='"生活播报测试",详询10086'
  10. for i in `awk '!a[$0]++{print}' 1.txt`; do /usr/bin/test $i $B; done
复制代码

你是想通过/usr/bin/test 执行发送消息命令是吧
这样应该可以吧

论坛徽章:
0
19 [报告]
发表于 2009-07-28 11:51 |只看该作者
对,就是这个意思,我试试先

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
20 [报告]
发表于 2009-07-28 12:08 |只看该作者
  1. $ sort -u 1|sed -f <(sed "s#\(.*\"\)\(.*\)#s@.*@./usr/bin/test \& '你好,\1测试\2'@#" 2)
复制代码

执行:
  1. $ sort -u 1|sed -f <(sed "s#\(.*\"\)\(.*\)#s@.*@./usr/bin/test \& '你好,\1测试\2'@e#" 2)
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP