關鍵詞提取與統計詞頻
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