一天一个shell命令 linux文本内容操作系列-awk命令详解

2019-09-23 09:19:20丽君

echo | awk '{var1="v1";var2="v2";var3="v3"; print var1"-"var2"-"var3;}'

打印v1-v2-v3

解释:双引号为连接符

其他任何符号,都不能正常输出v1,v2,v3

解读--help(一个非常庞大复杂的帮助文档,官方用了410页的篇幅PDF来介绍,如果我只言片语,你信我自己都不信。。)

用法: awk [POSIX 或 GNU 风格选项] -f 脚本文件 [--] 文件 ...
用法: awk [POSIX 或 GNU 风格选项] [--] '程序' 文件 ...
POSIX 选项:             GNU 长选项:
     -f 脚本文件        --file=脚本文件
    -F fs            --field-separator=fs
指定输入文本分隔符,fs是一个字符串或者是一个正则表达式,
    -v var=val        --assign=var=val
将外部变量值付给var
     -m[fr] val
     -O            --optimize
启用一些优化程序的内部表示。
     -W compat        --compat
在兼容模式下运行awk。所以gawk的行为和标准的awk完全一样,所有的awk扩展都被忽略。
     -W copyleft        --copyleft
打印简短的版权信息
    -W copyright        --copyright
打印短版的通用公共许可证,然后退出
     -W dump-variables[=file]    --dump-variables[=file]
打印全局变量,其类型,提交的最终值的排序列表。
    -W exec=file        --exec=file
与-f类似,但与他有两点不同,(我回头把相关文档上传,太长)
    -W gen-po        --gen-po
(内容太多)
    -W help            --help 打印帮助
    -W lint[=fatal]        --lint[=fatal]
警告可疑或不移植到其他的awk实现的结构
     -W lint-old        --lint-old
打印关于不能向传统unix平台移植的结构的警告
     -W non-decimal-data    --non-decimal-data
启用自动输入数据的解释,八进制和十六进制值
     -W profile[=file]    --profile[=file]
启用awk程序剖析
     -W posix        --posix
在严格意义上的POSIX模式运作。