uniq
uniq用來從乙個文字檔案中刪除或者禁止重複行,一般uniq假定檔案已經分類,並且結果正確。
sort中的唯一性選項去除所有重複行,而uniq命令並不是這樣。在uniq中,重複行是不斷重複出現的行,中間不夾雜任何文字內容,如:
1 may day2 may day
3 may day
4 going down
5 may day
6 may day.
7 may day
uniq將前三行看作是重複行,第四行是不同文字,所以第五行的may day將被保留。uniq命令的格式為:
$ uniq -u d c -f input_file out_file
各個選項的含義:
-u : 只顯示不重複行
-d : 只顯示有重複資料行,每種重複行只顯示其中一行
-c : 列印每個重複行出現的次數
-f : n為數字,前n個域被忽略,有些系統並不識別-f,這時替代使用-n。
使用-n只測試一行一部分的唯一性。注意:域從1開始計數。
1 ak123 3346 6u opp ty yu
2 dk122 5h 67 y8 opp ty yu
3 ek999 56
5678 iiy ty yu
從第五個域開始比較:
1 $ uniq -f4 -c parts.txt22 ak123 33
46 6u opp ty yu
31 ek999 56
5678 iiy ty yu
uniq在讀取行時,會對它們進行比較並將只除去兩個或更多的連續行。
join
join用來將兩個分類文字檔案的行連在一起。假設有兩個檔案file1和file2,當然已經分類,每個檔案中都有一些元素與另乙個檔案相連,由於這種關係,join將兩個檔案合併在一起。
為了有效使用join,需分別將輸入檔案分類。
其命令格式為:
1join [options] input-file1 input-file2
選項:an : 表示連線時顯示第n個檔案不匹配行。
o n.m : n表示檔案號,m表示域號。
t : 分隔符
j n.m o.p 表示連線的字段引數。
預設j o i n刪除或去除連線鍵的第二次重複出現,這裡即為名字域。
cutcut用來從標準輸入或者文字檔案中剪下列或者域。剪下文字可以粘帖到乙個文字檔案中。
格式為:
1 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
c u t用來從文字檔案或標準輸出中抽取資料列或者域,然後再用p a s t e可以將這些資料貼上起來形成相關檔案。貼上兩個不同**的資料時,首先需將其分類,並確保兩個檔案行數相同。
p a s t e將按行將不同檔案行資訊放在一行。預設情況下, p a s t e連線時,用空格或t a b鍵分隔新行中不同文字,除非指定- d選項,它將成為域分隔符。
p a s t e格式為;
1 paste -d -s -file1 file2
選項含義如下:
-d 指定不同於空格或t a b鍵的域分隔符。例如用@分隔域,使用- d @。
-s 將每個檔案合併成行而不是按行貼上。
- 使用標準輸入。例如ls -l |paste ,意即只在一列上顯示輸出。
split
split將大檔案分割成小檔案。
命令格式:
1split -output_file-size input-filename output-filename
shell學習筆記之if引數
b 當file存在並且是塊檔案時返回真 c 當file存在並且是字元檔案時返回真 d 當pathname存在並且是乙個目錄時返回真 e 當pathname指定的檔案或目錄存在時返回真 f 當file存在並且是正規檔案時返回真 g 當由pathname指定的檔案或目錄存在並且設定了sgid位時返回為真...
shell學習筆記之八(函式)
函式 定義 1 無返回值 function為關鍵字,function name為函式名 function function name 省略關鍵字function,效果一樣 function name 例 1 簡單函式宣告和呼叫 bin bash function sayhello sayhello ...
shell學習筆記之條件(二)
test或者 檢查檔案是否存在 if test f read.c then fi if f read.c then fi 如果then和if在同一行上,就應該用 把if和then分開 if f read.c then fi 注意 1.if空格 空格 空格 都有空格 2.test命令的退出碼 表明條件...