ITPub博客

首页 > 自动化运维 > DevOps > awk小技巧之执行shell命令

awk小技巧之执行shell命令

原创 DevOps 作者:raysuen 时间:2021-08-12 09:32:30 1 删除 编辑
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud
(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

方法一:system函数
ip add | grep enp0s8 | grep inet | awk '{print $2}' | awk -F"/" '{printf $1" "}{cmd="hostname";system(cmd)}
[root@rac1 ~]# ls | awk '{printf $NF" "}{cmd="hostname";system(cmd)}

方法二:使用变量(获取变量的时候已经执行命令)
ls |awk '{print i$0}' i= `pwd`'/'
[root@rac1 ~]# ls -a |awk '{print i$0}' i= "`pwd`/"  注意:这里的双引号不可以用单引号替换,单引号内强制为字符串-不执行引号内的命令。
[root@rac1 ~]# ls -a |awk -v i="`pwd`/" '{print i$0}'
方法三:把命令传递给bash
[root@rac1 ~]# awk 'BEGIN{print "echo cange"|"bash"}'   
cang
[root@rac1 ~]# ls -lh | awk '{print "echo cange"|"bash"}'
cange
cange
cange
cange
cange
cang
方法三的内容延伸:执行多重命令
[root@rac1 ~]# ls -lh | awk '{print "echo cange `date +%Y-%m-%d`"}' | bash
cange 2021-08-11
cange 2021-08-11
cange 2021-08-11
cange 2021-08-11
cange 2021-08-11
cange 2021-08-1
[root@rac1 ~]# ls -lh | awk '{print "echo cange $(date +%Y-%m-%d)"}'| bash 
cange 2021-08-11
cange 2021-08-11
cange 2021-08-11
cange 2021-08-11
cange 2021-08-11
cange 2021-08-11
cange 2021-08-11
cange 2021-08-11
结合输出引号和shell命令:
[grid@rac1 ~]$ find $ORACLE_BASE/diag/crs/`hostname`/crs/trace/ -ctime -1 | awk '{print "echo "$0" ` stat -c""\"" "%X %Y %Z" "\""" "$0"`"}' | head -n 10 | bash
/u01/app/grid/diag/crs/rac1/crs/trace/ 1628211140 1628211123 1628211123
/u01/app/grid/diag/crs/rac1/crs/trace/ocssd.trc 1628153326 1628211421 1628211421
/u01/app/grid/diag/crs/rac1/crs/trace/ocssd.trm 1628153326 1628211421 1628211421
/u01/app/grid/diag/crs/rac1/crs/trace/octssd.trc 1628099149 1628211410 1628211410
/u01/app/grid/diag/crs/rac1/crs/trace/octssd.trm 1628099149 1628211410 1628211410
/u01/app/grid/diag/crs/rac1/crs/trace/ohasd_orarootagent_root.trc 1628206771 1628211421 1628211421
/u01/app/grid/diag/crs/rac1/crs/trace/crsd_oraagent_grid.trc 1628044975 1628211421 1628211421
/u01/app/grid/diag/crs/rac1/crs/trace/ohasd.trc 1628202286 1628211419 1628211419
/u01/app/grid/diag/crs/rac1/crs/trace/crsd.trc 1628115223 1628211414 1628211414
/u01/app/grid/diag/crs/rac1/crs/trace/crsd_oraagent_oracle.trc 1627639317 1628211417 162821141
##%分号可以放在双引号内正常输出,


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28572479/viewspace-2786529/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
擅长oracle,Linux。精通shell,python。

注册时间:2016-08-23

  • 博文量
    144
  • 访问量
    208923


http://www.vxiaotou.com