免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3112 | 回复: 6
打印 上一主题 下一主题

[文本处理] 如何用awk每次读取一行记录并执行一次 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-08-25 10:43 |只看该作者 |倒序浏览
目前我有两段代码,一段是脚本,一段是脚本要读取的文本

  1. [root@centos6 bigpan]# more awk_sh.sh
  2. #!/bin/bash
  3. addr=`awk '{print $0}' < $1`
  4. ssh $addr useradd bigpan;
  5. scp test.log root@$addr:/home/bigpan
复制代码

  1. [root@centos6 bigpan]# more addr.txt
  2. 192.168.246.81
  3. 192.168.246.82
复制代码


执行 sh awk_sh.sh addr.txt,每次执行到ssh $addr这一步骤,实际执行的是
ssh 192.168.246.81 192.168.246.82 useradd bigpan;

而其实我是想分别执行
ssh 192.168.246.81 useradd bigpan;
ssh 192.168.246.82 useradd bigpan;

请教各位这个问题如何解决?

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
2 [报告]
发表于 2016-08-25 10:53 |只看该作者
  1. #!/bin/bash
  2. while read addr; do
  3. ssh $addr useradd bigpan;
  4. scp test.log root@$addr:/home/bigpan
  5. done < addr.txt
复制代码

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
3 [报告]
发表于 2016-08-25 10:56 |只看该作者
  1. while read addr
  2. do
  3.     ssh $addr useradd bigpan;
  4.     scp test.log root@$addr:/home/bigpan
  5. done < addr.txt
复制代码

论坛徽章:
0
4 [报告]
发表于 2016-08-26 11:25 |只看该作者
回复 2# moperyblue


  1. [root@centos6 bigpan]# more awk_sh.sh
  2. #!/bin/bash
  3. while read addr;
  4. do
  5.   ssh $addr useradd bigpan;
  6.   scp test.log root@$addr:/home/bigpan
  7. done < addr.txt
复制代码


  1. [root@centos6 bigpan]# sh -x awk_sh.sh
  2. + read addr
  3. + ssh 192.168.246.81 useradd bigpan
  4. root@192.168.246.81's password:
  5. useradd: user 'bigpan' already exists
  6. + scp test.log root@192.168.246.81:/home/bigpan
  7. root@192.168.246.81's password:
  8. test.log                                                                                                                              100%   12     0.0KB/s   00:00   
  9. + read addr
复制代码


经实践,其实这样也是无法循环起来的,只能读取addr.txt的第一个内容。

论坛徽章:
0
5 [报告]
发表于 2016-08-26 11:26 |只看该作者
回复 3# elu_ligao


兄台请参考4楼!循环其实没有执行起来呢。

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
6 [报告]
发表于 2016-08-26 13:58 |只看该作者
回复 5# 日复一日王


  1. ssh -n $addr useradd bigpan
复制代码

论坛徽章:
0
7 [报告]
发表于 2016-08-26 14:29 |只看该作者
回复 6# elu_ligao

已经验证可行!感谢大侠相助!!


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP