awk命令入门

引入:想必大家或多或少了解CSV把,看下图标你就知道了
awk命令入门

了解它的特性:使用英文逗号分隔
awk命令入门

使用Excel打开看看,用英文逗号风格,成功!

awk命令入门

CSV: 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本(NOTE)来开启,再则先另存新档后用EXCEL开启,也是方法之一。


我们再来看看awk命令:

awk命令:

awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理,然后输出

基本用法: [[email protected] ~]$ awk 动作 文件名

[[email protected] home]$ echo 'This Is A Text , Arvin Woo !!' | awk '{print $0}'
This Is A Text , Arvin Woo !!
[[email protected] home]$ echo 'This Is A Text , Arvin Woo !!' | awk '{print $1}'
This
[[email protected] home]$ echo 'This Is A Text , Arvin Woo !!' | awk '{print $2}'
Is
[[email protected] home]$ echo 'This Is A Text , Arvin Woo !!' | awk '{print $1 $2 $4 $3 }'
ThisIsTextA

awk命令入门

awk -F 指定分隔符

如:使用命令 复制/ect/passwd 文件 到当前用户目录。
以 passwd 文件为例,里面内容如下(该文件是用 "
:" 进行分隔的):

[[email protected] ~]$ cp /etc/passwd ~/ 
[[email protected] ~]$ cd

awk命令入门
使用awk -F 指定分隔符 提取第一个参数。
awk命令入门

除了 $ + 数字 表示某个字段,awk还提供一些变量。

如:

  • NF:示当前行有多少个字段
    $(NF)代表倒数第一个字段。 $(NF-1)代表倒数第二个字段。以此类推
  • NR:表示当前处理的是第几行
    awk命令入门
  • FILENAME:当前文件名
    awk命令入门
  • FS:字段分隔符,默认是空格和制表符。
    awk命令入门
  • RS:行分隔符,用于分割每一行,默认是换行符。
  • OFS:输出字段的分隔符,用于打印时分隔字段,默认为空格。
  • ORS:输出记录的分隔符,用于打印时分隔记录,默认为换行符。
  • OFMT:数字输出的格式,默认为%.6g。
  • \t :制表符
  • \n:换行符
awk还提供一些函数。
  • toupper() :把原有字符串转为大写
    awk命令入门
  • tolower():字符转为小写。
  • length():返回字符串长度。
    awk命令入门
  • substr():返回子字符串。
    awk命令入门
  • sin():正弦。
  • cos():余弦。
  • sqrt():平方根。
  • rand():随机数。
    awk命令入门

awk ‘条件 动作’ 文件名

awk ‘/正则表达式/ 动作’ 文件名 /Reg/ 双斜线里面是正则

[[email protected] ~]$ awk -F ':' '/root/ {print $1}'  passwd 
[[email protected] ~]$ awk -F ':' '/usr/ {print $1}'  passwd 

awk命令入门
awk命令入门

awk IF 语句 必须用在 “{}” 中,且条件(比较内容) 用 “()” 括起来
awk命令入门