zoukankan      html  css  js  c++  java
  • awk中执行Linux命令的两种方式

    在使用awk处理内容时,有时会按行执行Linux命令,下面介绍两种执行Linux命令方式。

    方式一

    用system():

    [root@localhost shell_script]# awk 'BEGIN {system("pwd")}'
    /root/shell_script
    [root@localhost shell_script]#
    

    test.log文件:

    [root@localhost shell_script]# cat test.log 
    pwd
    ls
    which sh
    [root@localhost shell_script]#
    

    按文件行作为输入执行:

    $0 表示一行数据

    [root@localhost shell_script]# awk '{print "执行命令:"$0; system($0); print "
    "}' test.log
    执行命令:pwd
    /root/shell_script
    
    执行命令:ls
    awk_system.sh  test.log
    
    执行命令:which sh
    /usr/bin/sh
    
    [root@localhost shell_script]#
    

    拼接命令:

    [root@localhost shell_script]# echo "sh601236" | awk '{cmd = "curl -X GET http://hq.sinajs.cn/list="$0; system(cmd);}'
    var hq_str_sh601236="红塔证券,19.930,20.320,19.150,19.930,18.710,19.150,19.160,41190044,791608359.000,198000,19.150,53300,19.140,60100,19.130,74200,19.120,24100,19.110,50500,19.160,28500,19.170,18300,19.180,15500,19.190,59300,19.200,2020-06-29,15:00:00,00,";
    [root@localhost shell_script]#
    

    方式二

    借助|sh命令:
    [root@localhost shell_script]# echo "pwd" | sh
    /root/shell_script
    [root@localhost shell_script]# cat test.log | sh
    /root/shell_script
    awk_system.sh  test.log
    /usr/bin/sh
    [root@localhost shell_script]#
    

    print

    [root@localhost shell_script]# awk 'BEGIN {print "pwd" | "sh"}'
    /root/shell_script
    [root@localhost shell_script]#
    
    [root@localhost shell_script]# echo "pwd" | awk '{print $0 | "sh"}'
    /root/shell_script
    [root@localhost shell_script]#
    
    [root@localhost shell_script]# awk '{print "执行命令:"$0; print $0 | "sh"; print "
    "}' test.log
    执行命令:pwd
    
    执行命令:ls
    
    执行命令:which sh
    
    /root/shell_script
    awk_system.sh  test.log
    /usr/bin/sh
    [root@localhost shell_script]#
    
    原创 Doflamingo https://www.cnblogs.com/doflamingo
  • 相关阅读:
    WEB版一次选择多个文件进行批量上传(swfupload)的解决方案
    WEB版一次选择多个文件进行批量上传(WebUploader)的解决方案
    WEB上传大文件解决方案
    kindeditor 富文本粘贴 图片
    Kindeditor图片粘贴上传(chrome)
    PHP超大文件下载,断点续传下载
    大文件断点上传 js+php
    常见的消息映射格式总结
    常见的消息映射格式总结
    C++项目中的extern "C" {}
  • 原文地址:https://www.cnblogs.com/doflamingo/p/13209610.html
Copyright © 2011-2022 走看看