awk 的基础使用 (一)

简单的说,awk就是获取到文本行后,按照分隔符处理每一个域,这个域就是分割的一段一段的值。

$0 --整行  $n---第n个域

awk ' pattern {action}

  • 两种常用方法:

1.cat 1.txt |awk -F 'x' '{print $0}' --x是分隔符 可以是字符或字符串

2. awk -F 'x' '{print $0}' 1.txt      ---注意单引号

  • 下面是几种简单的使用:

1.打印出来的域以tab键分割 ,\t

主要是print 的变化: '{print $1"\t"$2}' ----注意双引号

2.以某一个字符串分割  用 this分割

  cat  2.txt

  awk -F 'this' '{print $1}' 2.txt

3.用内置变量打印

       ARGC                   命令行参数个数
       ARGV                   命令行参数排列
       ENVIRON                支持队列中系统环境变量的使用
       FILENAME               awk浏览的文件名
       FNR                    浏览文件的记录数
       FS                     设置输入域分隔符,等价于命令行 -F选项
       NF                     浏览记录的域的个数
       NR                     已读的记录数
       OFS                    输出域分隔符
       ORS                    输出记录分隔符
       RS                     控制记录分隔符

awk '{print "file:" FILENAME ",line " NR ",text:" $0}' 2.txt

打印第十行

awk 'NR==10' file1.txt         tail -n+10 file1.txt

4.使用printf 代替print 

awk '{printf "file:%s,line %d,text:%s\n", FILENAME, NR, $0}' 2.txt

5.在文件的头尾添加行

cat 1.txt |awk 'BEGIN {print "the first line"} {print $1} END {print "the last line"}'

6.使用正则匹配第一个域为three的行。

awk '$1 ~ /three/' 2.txt

正则表达式:https://blog.csdn.net/chrycoder/article/details/101274334

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章