peng450 2021-01-29 18:06 采纳率: 0%
浏览 8
已结题

找个shell高手帮忙把一条命令写进awk里面。

想把sed 's/\+\+\+ \/tmp\/.*\.tmp/\.$3/g'移到awk里面使用,这个$3是awk里的变量。awk的坑,我踩了。

awk '{cmd="sed ' " ' " 's/\+\+\+ \/tmp\/.*\.tmp/\.$3/g' " ' " ' "; system(cmd)}' 失败

  • 写回答

2条回答 默认 最新

  • 歇歇 2021-01-29 21:43
    关注

    awk

    ===========
    awk  一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。


    处理流程:(以行为处理单位)

        通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本


    语法格式:

        1\\ awk [options] 'script' var=value file(s)  
        2\\ awk [options] -f scriptfile var=value file(s)
        # 注意:
            以单引号来界定script, 因此内部最好用双引号
            'script',即两部分组成:'{pattern + action}'。pattern-模式:表示 awk 在数据中查找的内容,action-操作:是在找到匹配内容时所执行的一系列命令。


    调用方式:

        (1) awk 命令行
        用于解决简单的问题。当然,你也可以在shell script 程序中引用awk 命令行甚至awk 程序脚本。

        (2) 使用-f 选项调用awk 程序
        awk 允许将一段awk 程序写入一个文本文件,然后在awk 命令行中用-f 选项调用并执行这段程序。

        (3) 利用命令解释器调用awk 程序
        利用UNIX 支持的命令解释器功能,我们可以将一段awk 程序写入文本文件,然后在它的第一行加上#!/bin/awk –f.

        
    关于'BEGIN{} //{command1; command2} END{}':

        awk [-F|-f|-v] 'BEGIN{} //{command1; command2} END{}' file
         [-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value
        '  '          引用代码块
        BEGIN   初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
        //           匹配代码块,可以是字符串或正则表达式
        {}           命令代码块,包含一条或多条命令
        ;          多条命令使用分号分隔
        END      结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息
     

    常用命令选项:

        -F fs fs 指定输入分隔符,fs可以时字符串或正则表达式
        -v var=value 赋值一个用户定义变量,将外部变量传递给awk
        -f scriptfile 从脚本文件中读取awk命令
        

    常见变量:

        $n    当前记录的第n个字段,字段间由FS分隔
        $0  完整的输入记录        # {print} 与 {print $0}都是打印当前行的全部内容
        FS     字段分隔符(默认是任何空格)
        NF     一条记录的字段的数目
        NR     已经读出的记录数,就是行号,从1开始
        FNR    各文件分别计数的行号
        OFS    输出记录分隔符(输出换行符),输出时用指定的符号代替换行符


    awk的 I/O指令:print, printf( ), getline, ...
    awk的 流程控制指令:if(...){..} else{..}, while(...){...}, ...

    评论

报告相同问题?

悬赏问题

  • ¥15 java幂等控制问题
  • ¥15 海湾GST-DJ-N500
  • ¥15 氧化掩蔽层与注入条件关系
  • ¥15 Django DRF 如何反序列化得到Python对象类型数据
  • ¥15 多数据源与Hystrix的冲突
  • ¥15 如何在线硕士了解,广告太多,希望有真实接触过的人回答下?(标签-学习|关键词-在线硕士)
  • ¥15 zabbix6.4与frp如何进行联动
  • ¥15 如何使用Echarts制作途中时间序列表
  • ¥15 图论相关的数学问题,共10个
  • ¥15 EtherCAT的问题,创建一个XML文件