特殊符號
* 任意個任意字符 ? 任意一個字符 # 註釋字符 \ 脫義字符 | 管道符
cut
cut命令用來顯示行中的指定部分,刪除文件中指定字段。cut經常用來顯示文件的內容
用法:
cut 參數 文件(指定要進行內容過濾的文件)
參數:
-b:僅顯示行中指定直接範圍的內容; -c:僅顯示行中指定範圍的字符; -d:指定字段的分隔符,默認的字段分隔符爲“TAB”; -f:顯示指定字段的內容;
實例:
[root@localhost text]# cat test.txt No Name Mark Percent 01 tom 69 91 02 jack 71 87 03 alex 68 98 使用 -f 選項提取指定字段: [root@localhost text]# cut -f 1 test.txt No 01 02 03 [root@localhost text]# cut -f2,3 test.txt Name Mark tom 69 jack 71 alex 68 使用 -d 選項指定字段分隔符: [root@localhost text]# cat test2.txt No;Name;Mark;Percent 01;tom;69;91 02;jack;71;87 03;alex;68;98 [root@localhost text]# cut -f2 -d";" test2.txt Name tom jack alex
指定字段的字符或者字節範圍:
cut命令可以將一串字符作爲列來顯示: N-: 從第N個字節、字符、字段到結尾; N-M: 從第N個字節、字符、字段到第M個(包括M在內)字節、字符、字段; -M: 從第1個字節、字符、字段到第M個(包括M在內)字節、字符、字段。 上面是記法,結合下面選項將摸個範圍的字節、字符指定爲字段: -b 表示字節; -c 表示字符; -f 表示定義字段。
示例
[root@localhost text]# cat test.txt abcdefghijklmnopqrstuvwxyz 打印第1個到第3個字符: [root@localhost text]# cut -c1-3 test.txt abc 打印前2個字符: [root@localhost text]# cut -c-2 test.txt ab 打印從第5個字符開始到結尾: [root@localhost text]# cut -c5- test.txt efghijklmnopqrstuvwxyz
sort
將文件進行排序,並將排序結果標準輸出
用法:
sort 參數 文件(指定待排序的文件列表)
參數:
-b:忽略每行前面開始出的空格字符; -c:檢查文件是否已經按照順序排序; -d:排序時,處理英文字母、數字及空格字符外,忽略其他的字符; -f:排序時,將小寫字母視爲大寫字母; -n:依照數值的大小排序; -r:以相反的順序來排序; -t<分隔字符>:指定排序時所用的欄位分隔字符;
實例:
sort將文件/文本的每一行作爲一個單位,相互比較,比較原則是從首字符向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。 # cat sort.txt aaa:10:1.1 ccc:30:3.3 ddd:40:4.4 bbb:20:2.2 eee:50:5.5 eee:50:5.5 # sort sort.txt aaa:10:1.1 bbb:20:2.2 ccc:30:3.3 ddd:40:4.4 eee:50:5.5 eee:50:5.5
忽略相同行使用-u選項或者uniq:
# cat sort.txt aaa:10:1.1 ccc:30:3.3 ddd:40:4.4 bbb:20:2.2 eee:50:5.5 eee:50:5.5 # sort -u sort.txt aaa:10:1.1 bbb:20:2.2 ccc:30:3.3 ddd:40:4.4 eee:50:5.5 或者 # uniq sort.txt aaa:10:1.1 ccc:30:3.3 ddd:40:4.4 bbb:20:2.2 eee:50:5.5
sort的-n、-r、-k、-t選項的使用:
# cat sort.txt AAA:BB:CC aaa:30:1.6 ccc:50:3.3 ddd:20:4.2 bbb:10:2.5 eee:40:5.4 eee:60:5.1 #將BB列按照數字從小到大順序排列: # sort -nk 2 -t: sort.txt AAA:BB:CC bbb:10:2.5 ddd:20:4.2 aaa:30:1.6 eee:40:5.4 ccc:50:3.3 eee:60:5.1 #將CC列數字從大到小順序排列: # sort -nrk 3 -t: sort.txt eee:40:5.4 eee:60:5.1 ddd:20:4.2 ccc:50:3.3 bbb:10:2.5 aaa:30:1.6 AAA:BB:CC # -n是按照數字大小排序,-r是以相反順序,-k是指定需要愛排序的欄位,-t指定欄位分隔符爲冒號
wc
wc命令用來計算數字。利用wc指令我們可以計算文件的Byte數、字數或是列數,若不指定文件名稱,或是所給予的文件名爲“-”,則wc指令會從標準輸入設備讀取數據。
用法:
wc 參數 文件(需要統計的文件列表)
參數:
-c:只顯示Bytes數; -l:只顯示列數; -w:只顯示字數。
uniq
uniq命令用於報告或忽略文件中的重複行,一般與sort命令結合使用
用法:
uniq 參數 輸入輸出文件
參數:
-c: 在每列旁邊顯示該行重複出現的次數; -d: 僅顯示重複出現的行列;
實例:
刪除重複行: uniq file.txt sort file.txt | uniq sort -u file.txt 只顯示單一行: uniq -u file.txt sort file.txt | uniq -u 統計各行在文件中出現的次數: sort file.txt | uniq -c 在文件中找出重複的行: sort file.txt | uniq -d
tee
tee命令用於將數據重定向到文件,把數據重定向到給定文件和屏幕上。
用法:
tee 參數 文件(指定輸出重定向的文件)
參數:
-a:向文件中重定向時使用追加模式;
tr
tr命令可以對來自標準輸入的字符進行替換、壓縮和刪除。它可以將一組字符變成另一組字符
split
將一個大文件分割成很多個小文件
參數:
-b:值爲每一輸出檔案的大小,單位爲 byte。 -l:值爲每一輸出檔的列數大小。 -d:使用數字作爲後綴。
實例:
生成一個大小爲100KB的測試文件: [root@localhost split]# dd if=/dev/zero bs=100k count=1 of=date.file 1+0 records in 1+0 records out 102400 bytes (102 kB) copied, 0.00043 seconds, 238 MB/s 使用split命令將上面創建的date.file文件分割成大小爲10KB的小文件: [root@localhost split]# split -b 10k date.file [root@localhost split]# ls date.file xaa xab xac xad xae xaf xag xah xai xaj
文件被分割成多個帶有字母的後綴文件,如果想用數字後綴可使用-d參數,同時可以使用-a length來指定後綴的長度: [root@localhost split]# split -b 10k date.file -d -a 3 [root@localhost split]# ls date.file x000 x001 x002 x003 x004 x005 x006 x007 x008 x009 爲分割後的文件指定文件名的前綴: [root@localhost split]# split -b 10k date.file -d -a 3 split_file [root@localhost split]# ls date.file split_file000 split_file001 split_file002 split_file003 split_file004 split_file005 split_file006 split_file007 split_file008 split_file009