awk 简单操作

工作总结…

#实验文本
1^I2$
3^I4$
5^I6$

1、列操作

打印第一列
(base) B00000094065z:~ gongel$ cat a | awk '{print $1}'
1
3
5
打印最后一列
(base) B00000094065z:~ gongel$ cat a | awk '{print $NF}'
2
4
6
加一列
(base) B00000094065z:~ gongel$ cat a | awk '{print $0"\ta"}'
1	2	a
3	4	a
5	6	a
加一列(按行操作,多此一举)
'''
shell脚本
cat $1 | while read line
do
    echo $line | awk '{print $0"\ta"}';
done
'''

(base) B00000094065z:~ gongel$ sh ts.sh a
1 2 a
3 4 a
5 6 a

2、行操作

NR为当前处理行
(base) B00000094065z:~ gongel$ cat a | awk '{print NR":"$0}'
1:1	2
2:3	4
3:5	6

3、统计命令(BEGIN/END)

求和
(base) B00000094065z:~ gongel$ cat a|awk '{sum+=$1} END {print "Sum = ", sum}'
Sum =  9
求平均
(base) B00000094065z:~ gongel$ cat a|awk '{sum+=$1} END {print "Average = ", sum/NR}'
Average =  3
求最大值
(base) B00000094065z:~ gongel$ cat a|awk 'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print "Max=", max}'
Max= 5

4. 删除文件的第一列

方法1 
awk '{$1 = "";print $0}' a.txt | sed 's/^[\t ]*//g'
 
方法2 
cut -d " " -f 2- a.txt
0