linux 實用指令

關鍵詞提取與統計詞頻

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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章