Linux 常用文本命令 總結

查看端口占用情況


netstat  -tuanp



centos6 linux禁用IPv6,解決大量 TIME_WAIT ::ffff:127.0.0.1:59299

沒設置好 很多服務無法訪問
http://www.qbage.com/post/48-centos6-disable-ipv6.html

linux shell 用sed命令在文本的行尾或行首添加字符

http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html



 jq : Linux下json的命令行工具

http://blog.chinaunix.net/uid-24774106-id-3830242.html



文本處理


1

linux 多行轉換爲 單行   每5行合併成一行

awk '{if(NR%5) {ORS=""} else {ORS="\n\n"};print;}'


2

建立索引

awk   'NR==FNR { a[$2]=$1; next } {{printf $1} for(i=2;i<=NF;i++) { printf " "a[$i]" "} {print ""} } ' deerwester.txt  company >company_index

變量自增

 i=`expr $i + 1`


3

sed 文件的 一行   
     content =`sed -n "${i},${dd}p"  user_index_Inverseindex`

4

awk \t , 分割  。for  變量處理 $i 字段
     echo $content |awk 'BEGIN{FS="[\t =,]"}{for(i=2;i<NF;i++) {printf " "$i" "} print " "}' >>red_index


awk多文件輸出

  1. awk '{ if(NF==3)print $0 > 1;else print $0 > 2 }' 0  

6 隨機數

在BEGIN模塊設定隨機數種子srand(),在逐行讀取文件的模塊輸出隨機數rand()。

其中rand()的大小在(0,1)之間。

[python] view plaincopy
  1. awk -F"\t" 'BEGIN{  
  2.     srand();  
  3. }{    
  4.     value=int(rand()*100);  
  5.     print value  
  6.     if(value<=10)  
  7.         print value"\t"NR  
  8. }'  

注意,srand()需要寫在BEGIN模塊,才能正常產生隨機數,這是awk的工作機制決定的。

7
假設 a.txt 包括 a, c, b 三行。假設 b.txt 包括 d, e, c, b 四行。

交集,把兩個文件放到一起排序,只輸出次數多於一次的項:
$ sort a.txt b.txt | uniq -d
b
c


求一個文件的差集(A-B)
[root@rhlei aaa]# cat a
1
2
3
4
[root@rhlei aaa]# cat b
2
4
5
6
[root@rhlei aaa]# sort a b |uniq -u
1
3
5
6
[root@rhlei aaa]# sort a b b |uniq -u
1
3



並集,把兩個文件放到一起排序,重複的項只算一次:
$ sort a.txt b.txt | uniq
a
b
c
d
e

差集(A-B),把B的元素重複2份和A的元素放到一起排序,只輸出出現一次的項:
$ sort a.txt b.txt b.txt | uniq -u
a

對稱差,把兩個文件放到一起排序,只輸出出現一次的項:
$ sort a.txt b.txt | uniq -u
a
d
e




bash script: find max, group by and sort by column

http://stackoverflow.com/questions/15397205/bash-script-find-max-group-by-and-sort-by-column

發佈了101 篇原創文章 · 獲贊 39 · 訪問量 40萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章