awk 动作 文件名
awk '{print $0}' network
这里$0表示当前行所以得出的结果和cat network 是一样的,另外$1,$2,$N表示第一个字段,第二字段,第N个字段,
所以如果使用$1 的话就会打印每行的第一个字段(默认是按空格截取的字段)
awk -F ':' '{print $1}' passwd
-F 按照冒号来切割每一行,打印第一个字段
1,使用变量
变量:
NF :切割出的最后一个字段
NR:表示当前处理的是第几行
awk -F ':' '{print $1 ,$NF}' passwd
更进一步,$0 表示当前行,而$1表示按指定方法切割出的第一个字段,$NF 表示切割出的最后一个字段。$(NF-1) 表示倒数第二个字段,依次类推。
另外","会显示成 空格,如果不加","会导致两个字段紧连。
awk -F ':' '{print"(" NR")" ,$1}' passwd
NR 表示当前的行号,是一个变量 如果想打印出正常的字段,不要用"NR" 因为这是把NR作为一个字符串(shell 的用法)
2,使用内置函数处理数据
内置函数:
toupper(): 字符转为大写
tolower():字符转为小写
length():返回字符串长度
substr();返回子字符串 // 未
sin();正弦 //成
cos();余弦 //功
sqrt();平方根 //待
rand():随机数 //解决
3,使用条件
awk '条件 动作' 文件名
awk -F ':' '/daemon/ {print $1}' passwd
查找包含 "daemon" 字符的行并将它的第一个字段打印出来。
awk -F ':' 'NR%2 == 1 {print $1}' passwd //打印奇数行 的第一个切割字段
awk -F ':' 'NR >2 {print $1}' passwd //打印从第三行开始的第一个切割字段。
4,if 条件语句(不同于3)
写判定条件时与3不同,写在{} 内,if 和else之间才加;print字符串要加""
如果是多条语句该怎么办(else 后面知道了,前面怎么办?)