文件分類、合併和分割(筆記)

一、sort命令:
1.sort選項
sort命令的一般格式爲:
sort -cmu -o output_file [other options] +pos1 +pos2 input_files
下面簡要介紹一下sort的參數:
-c 測試文件是否已經分類。
-m 合併兩個分類文件。
-u 刪除所有複製行。
-o 存儲sort結果的輸出文件名。
其他選項有:
-b 使用域進行分類時,忽略第一個空格。
-n 指定分類是域上的數字分類。
-t 域分隔符;用非空格或tab鍵分隔域。
-r 對分類次序或比較求逆。
+n n爲域號。使用此域號開始分類。
n n爲域號。在分類比較時忽略此域,一般與+ n一起使用。
post1 傳遞到m,n。m爲域號,n爲開始分類字符數;例如4,6意即以第5域分類,從第7個字符開始。
2.sort對域的參照方式
關於sort的一個重要事實是它參照第一個域作爲域0,域1是第二個域,等等。sort也可以使用整行作爲分類依據。
3.文件是否已分類
使用sort - c通知sort文件是否按某種順序分類
4.sort分類求逆
如果要逆向sort結果,使用-r選項。在通讀大的註冊文件時,使用逆向sort很方便。
5.按指定域分類
有時需要只按第2域(分類鍵1)分類。這裏爲重排報文中供應區代碼,使用t1,意義爲按分類鍵1分類。下面的例子中,所有供應區代碼按分類鍵1分類;注意分類鍵2和3對應各域也被分類。
6.數值域分類
數值分類,可以使用-n選項
7.使用k的其他sort方法
sort還有另外一些方法指定分類鍵。可以指定k選項,第1域(分類鍵)以1開始。
8.指定sort序列
可以指定分類鍵順序,也可以使用- n選項指定不使用哪個分類鍵進行查詢。看下面的sort命令:
sort +0 -2 +3
該命令意即開始以域0分類,忽略域2,然後再使用域3分類。
9.pos用法
指定開始分類的域位置的另一種方法是使用如下格式:
sort +field_number.charater_in
意即從field_number開始分類,但是要在此域的第characters_in個字符開始。
 
二、uniq用法
uniq用來從一個文本文件中去除或禁止重複行。一般uniq假定文件已分類,並且結果正確。
可以認爲uniq有點像sort命令中唯一性選項。對,在某種程度上講正是如此,但兩者有一個重要區別。sort的唯一性選項去除所有重複行,而uniq命令並不這樣做。重複行是什麼?在uniq裏意即持續不斷重複出現的行,中間不夾雜任何其他文本。
命令一般格式:
uniq -u d c -f input-file output-file
其選項含義:
-u 只顯示不重複行。
-d 只顯示有重複數據行,每種重複行只顯示其中一行
-c 打印每一重複行出現次數。
-f n爲數字,前n個域被忽略。
一些系統不識別-f選項,這時替代使用-n。
 
三、join用法
一般格式爲:
join [options] input-file1 input-file2
an n 爲一數字,用於連接時從文件n中顯示不匹配行。例如, - a1顯示第一個文件的不匹配行,- a2爲從第二個文件中顯示不匹配行。
o n.m n爲文件號,m爲域號。1 . 3表示只顯示文件1第三域,每個n,m必須用逗號分隔,如1.3,2.1。
j n m n爲文件號,m爲域號。使用其他域做連接域。
t 域分隔符。用來設置非空格或tab鍵的域分隔符。例如,指定冒號做域分隔符- t:。
 
四、cut用法
cut用來從標準輸入或文本文件中剪切列或域。剪切文本可以將之粘貼到一個文本文件。
cut一般格式爲:
cut [options] file1 file2
下面介紹其可用選項:
-c list 指定剪切字符數。
-f field 指定剪切域數。
-d 指定與空格和t a b鍵不同的域分隔符。
-c 用來指定剪切範圍,如下所示:
-c 1,5-7 剪切第1個字符,然後是第5到第7個字符。
-c1-50 剪切前5 0個字符。
-f 格式與- c相同。
-f 1,5 剪切第1域,第5域。
-f 1,10-12 剪切第1域,第1 0域到第1 2域。
 
五、paste用法
cut用來從文本文件或標準輸出中抽取數據列或者域,然後再用paste可以將這些數據粘貼起來形成相關文件。粘貼兩個不同來源的數據時,首先需將其分類,並確保兩個文件行數相同。
paste將按行將不同文件行信息放在一行。缺省情況下, paste連接時,用空格或tab鍵分隔
新行中不同文本,除非指定- d選項,它將成爲域分隔符。
paste格式爲;
paste -d -s -file1 file2
選項含義如下:
-d 指定不同於空格或t a b鍵的域分隔符。例如用@分隔域,使用-d @。
-s 將每個文件合併成行而不是按行粘貼。
- 使用標準輸入。例如ls -l | paste ,意即只在一列上顯示輸出。
 
六、split用法
split用來將大文件分割成小文件。有時文件越來越大,傳送這些文件時,首先將其分割可能更容易。使用vi或其他工具諸如sort時,如果文件對於工作緩衝區太大,也會存在一些問題。
因此有時沒有選擇餘地,必須將文件分割成小的碎片。
split命令一般格式:
split -output_file-size input-filename output-filename
這裏output-file - size指的是文本文件被分割的行數。split查看文件時,output-file-size選項指定將文件按每個最多1000行分割。
 
 
t r用來從標準輸入中通過替換或刪除操作進行字符轉換。t r主要用於刪除文件中控制字符
或進行字符轉換。
帶有最常用選項的tr命令格式爲:
tr -c -d -s [ "string1_to_translate_from" ] [ "string2_to_triannpsultate_ to " ] file
這裏:
-c 用字符串1中字符集的補集替換此字符集,要求字符集爲ASCII。
-d 刪除字符串1中所有輸入字符。
-s 刪除所有重複出現字符序列,只保留第一個;即將重複出現字符串壓縮爲一個字符串。
Input-file是轉換文件名。雖然可以使用其他格式輸入,但這種格式最常用。
速記符 含義  八進制方式
\a Ctrl-G 鈴聲 \007
\b Ctrl-H 退格符 \010
\f Ctrl-L 走行換頁 \014
\n Ctrl-J 新行 \012
\r Ctrl-M 回車 \015
\t Ctrl-I tab鍵 \011
\v Ctrl-X  \030
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章