关键词提取与统计词频
cat file | awk -F”\001” '{print $2}' | awk -F”\002” '{print $1}'| sort| uniq -c |sort -rn
对文件中的某一列求和
cat file | awk '{print $1}' | awk '{sum+=$1} END{print sum}'(对第一列求和)
求文件夹下所有文件的行数总和
find . -type f -exec wc -l '{}' \; |awk '{sum+= $1} END{print sum}'
find . -type f -exec cat '{}' \;|awk -F"\001" '{print $1}'|awk -F"\002" '{print $5}'|sort -u|wc -l
对文件排序 按指定列排序并存入新文件中
sort -k 3 -rn -t$'\001' attraction_query.txt > new_test.txt
-t 指定分隔符 -k 指定按那一列排序 -r 降序
删除不为指定目录的其他文件
Find $path -mindepth 1 -maxdepth 1 ! -wholename path/test -a ! -wholename path/test2 |xargs rm -rf
删除进程
ps -ef|grep 名称 |grep -v grep |awk '{print “kill -9 ” $2}'|sh
ps -ef|grep 名称 |grep -v grep |awk '{print $2}'|xargs kill -9
AWK实现reduce的功能
awk -F"\t" -v OFS='\t' '{arr[$1]+=$2}END{for(i in arr)print i,arr[i]}' test | sort -k 2 -rn -t$'\t' >res
awk -F"\t" '{arr[$1]+=$2}END{for(i in arr)print i"\t"arr[i]}' test | sort -k 2 -rn -t $'\t' > res
-v OFS='\t' ' 指定输出分隔符 或者 print语句块中使用双引号当作拼接符使用
AWK文本求交
awk -F"\t" 'NR==FNR{a[$1]=$2;next}{if(a[$1]){a[$1]+=$2;print $1,a[$1]}}' test test2
next 命令,在循环逐行匹配,如果遇到next,就会跳过当前行,直接忽略下面语句,直接处理下一个输入行。
VIM 下 ctrl + z 就能返回终端 fg 返回vim