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 后面知道了,前面怎么办?)


本文介绍了awk命令的基本用法,包括按指定分隔符打印字段,使用变量如NF和NR,以及内置函数如toupper()和length()。此外,还讲解了基于条件的行处理,如查找特定模式的行和处理奇偶行。awk的灵活性在文本分析和数据处理中显得尤为强大。
2356

被折叠的 条评论
为什么被折叠?



