美文网首页
awk命令详解

awk命令详解

作者: viean | 来源:发表于2018-04-11 13:21 被阅读0次

语法格式

awk [options] 'script' var=value file(s)
awk [options] -f scriptfile var=value file(s)

内置变量

$0 当前行的文本内容
$n 当前行的第n个字段
ARGC 命令行参数个数
ARGV 命令行参数数组
ARGIND 命令行中当前文件的位置(从0开始,处理多个文件时,应用用ARGIND==0, ARGIND==1等)
ENVIRON 环境变量关联数组
FILENAME 当前输入文件名
NR 表示记录数,执行过程中对应当前行号
FNR 同NR,但相对于当前文件
FS  字段分隔符
IGNORECASE 忽略大小写的匹配
NF 表示字段数
OFS 输出字段分隔符
ORS 输出记录分隔符
RS  记录分隔符

外部变量传给awk

a=100
awk -v v=$a '{print v}'
或
v1="aaa"
v2="bbb"
echo | awk '{print var1,var2}' var1=$v1 var2=$v2

打开外部文件

awk 'BEGIN{while("cat /etc/passwd"|getline){print $0;};close("/etc/passwd");}'

调用外部应用程序

awk 'BEGIN{b=system("ls -al"); print b;}'

其他示例

head tmp.txt tmp2.txt
==> tmp.txt <==
a   100
b   200
c   300
d   400
==> tmp2.txt <==
a   1-00
b   2-00
c   3-00
#两个文件merge
awk 'BEGIN{FS="\t";OFS="\t";}NR==FNR{a[$1]=$2;}NR>FNR{print $1,$2,a[$1]}' tmp.txt tmp2.txt
a   1-00    100
b   2-00    200
c   3-00    300
#分别处理几个文件(也可以赋值后,在END中拼接)
awk 'BEGIN{FS="\t";OFS="\t";}
ARGIND==1{tmp[$1]=$2}
ARGIND==2{tmp2[$1]=$2}
ARGIND==3{tmp3[$1]=$2}
END{for(t in tmp){print t,tmp2[t],tmp3[t];}}'
tmp.txt tmp2.txt tmp3.txt

相关文章

  • Linux

    linux awk命令详解、linux awk命令Linux常用操作指令Linux netstat命令详解 awk...

  • AWK 命令详解

    AWK 命令详解 除了使用 sed 命令,Linux 系统中还有一个功能更加强大的文本数据处理工具,就是 awk。...

  • Linux awk命令详解

    Linux awk命令详解 使用方法 调用awk 入门实例 1. 显示最近登录的5个帐号 awk工作流程是这样的:...

  • awk命令详解

    语法格式 内置变量 外部变量传给awk 打开外部文件 调用外部应用程序 其他示例

  • awk命令详解

    简介: awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得...

  • awk命令详解

    背景 AWK是一种处理文本文件的语言,是一个强大的文本分析工具 awk的基本用法 文本内容: 2 this is ...

  • awk命令详解

    写在最开始 相比于sed,awk就显得强大多了。如果说sed是轻巧的山地摩托,那awk就是装甲坦克,分分钟把sed...

  • Awk 命令详解

    [TOC] 简介 我们常在命令行中使用awk命令提取转换文件文本内容,可以说,awk是命令行中文本处理的瑞士军刀,...

  • Shell编程、part5

    本节内容 1. 三剑客简介 2. sed命令详解 3. awk命令详解 文本处理三剑客 在 Shell 下使用这些...

  • linux awk命令详解

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤...

网友评论

      本文标题:awk命令详解

      本文链接:https://www.haomeiwen.com/subject/buiahftx.html