awk

echo date +"%F %H:%M" -d "-5 min" | awk '{gsub(/-/,".");} {gsub(/:/," "); print }' awk最基本功能是在文件或字符串中基于指定规则浏览和抽取信息。 简单的 a,1,A,127.0.0.1 d,2,A,127.0.0.1 a,1,C,127.0.0.1

作为基本数据保存为test.txt cat test.txt | awk '{print $1}' 打印第一排 cat test.txt | awk '{print $4}' 打印第四排 cat test.txt | awk '{print $4}' | sort 打印并排序 cat test.txt | awk '{print $4}' | sort | uniq 打印排序并去重 cat test.txt | awk '/192.168.0.2/ {print \(1,\)2,\(3,\)4}'

匹配出ip为192.168.0.2的这行数据

http://man.lupaworld.com/content/manage/ringkee/awk.htm

-F"," 文件本身的分隔符 -OFS 输入域分隔符,默认为一个空格 awk '{if(\(1=="b") print }' test.txt 如果\)1 == b awk '{if(\(5>600) print "JG:" \)1 }' test.txt 如果$1 > 600 awk '{sum+=$5;num++;} END {print sum,num,sum/num;}' test.txt (500..+800.. = 3500, 6次,总数/6) awk '/19[2|6]/ {print $4}' test.txt 匹配192,或者196的 awk 'END {print NR}' test.txt 总共有几行 8行 awk 'gsub(/^a/,"phper.yang") {print}' test.txt

把a开头的替换成phper.yang

awk 'BEGIN {print index("phper.yang","p")}'

查询o第一次出现的位置

awk '{print length(\(4)}' test.txt 打印出\)4的字符的长度 awk 'BEGIN {print match("phper.yang",/y/)}'

查询y在phper.yang中的位置

awk 'BEGIN {print split("123#456#789", myarray, "#")}' i

返回字符串数组元素个数

awk 'BEGIN {print substr("phper.yang",5,9)}'

第5个字符开始,取9个字符

echo "65" | awk '{printf"%c\n",$0}' ( awk 'BEGIN {printf "%c\n",65}'/awk 'BEGIN {printf "%f\n",999}' ) A 字符串转换 awk -F"," '{print $1}' a.txt awk -F"," 'BEGIN { OFS="%" } {print \(1,\)2}' a.txt

按照,号隔开,输出按%输出

awk -F"," '{print \(1,"%",\)2}' a.txt awk -F"," '{print \(1"%"\)2}' a.txt

同楼上

cut -c 1-3 a.txt 打印 字段1,字段2 {-c:指定字符位置,从1到3个字符} cut -f 1-3 -d, a.txt 分隔符是,打印1到3 cut -f 1,3 -d, a.txt 打印1,或者3

1. cat file1 file2 | sort | uniq

(取出两个文件的并集(重复的行只保留一份))

2. cat file1 file2 | sort | uniq -d

(取出两个文件的交集(只留下同时存在于两个文件中的文件))

3. cat file1 file2 | sort | uniq -u (删除交集,留下其他的行) LANG=C sort file1 file2 | uniq 两个未排序文件的并集 LANG=C sort file1 file2 | uniq -d 两个未排序文件的交集 LANG=C sort file1 file1 file2 | uniq -u 两个未排序文件的差集 LANG=C sort file1 file2 | uniq -u 两个未排序文件的对称差集 LANG=C comm file1 file2 | sed 's/^\t*//' 两个有序文件的并集 LANG=C comm -12 file1 file2 两个有序文件的交集 LANG=C comm -13 file1 file2 两个有序文件的差集 LANG=C comm -3 file1 file2 | sed 's/^\t*//' 两个有序文件的对称差集