shell熱門檔案處理命令

來源:互聯網
上載者:User

檔案的合并與分割:
1. sort
命令格式:
sort -cmu -o output_file [other options] +pos1 +pos2 input_file
-c 測試檔案是否已經分類。
-m 合并兩個分類檔案。
-u 刪除所有複製行。
-o 儲存s o r t結果的輸出檔案名。
其他選項有:
-b 使用域進行分類時,忽略第一個空格。
-n 指定分類是域上的數字分類。
-t 域分隔字元;用非空格或tab鍵分隔域。
-r 反向排序。
+n n為域號。使用此域號開始分類。[第一列為域0]
pos1 pos2 傳遞到m,n。m為域號,n為開始分類字元數;例如4,6意即以第5域分類,從第7個字元開始。

$ sort f1.txt
$ sort -t: f2.txt
對於數字域, 使用
$ sort +0n f1.txt          % 0表示第1個域, 可使用任何域
$ sort +2 f1.txt           % 以第3個域排序
$ sort -u f1.txt       % 排序時去除重複行

$ head -n f1.txt           % 顯示檔案的前n行
$ tail -n f1.txt

$ sort +0n -r f1.txt | head -1 | awk '{print "worst case", $1, "has been rented by", $2}'
worst case 483 has been rented by tfj

合并檔案:
$ sort -m file1 file2

提取/etc/passwd中的使用者名稱並排序顯示:
$ sort -t: +0 /etc/passwd | awk -F: '{print $1}'

以ip地址的最後一個域排序顯示:
$ sort -t. +3n iplist_file      % 檔案內容為nnn.nnn.nnn.nnn XX

uniq: 刪除*連續*重複出現的行
格式: uniq -udc -f input_file [output_file]
選項含義:
-u 只顯示不重複行。
-d 只顯示有重複資料行,每種重複行只顯示其中一行
-c 列印每一重複行出現次數。
-f n為數字,前n個域被忽略。
一些系統不識別- f選項,這時替代使用- n。
$ more a.txt
May
May
May
haha
May
$ uniq a
May
haha
May

串連檔案: join
需要兩個檔案有相同的域(類似資料庫的join)

cut: 提取檔案內容
c u t一般格式為:
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域。

$ more a
p.joines:office runner:id897
s.round:unix admin:id666
l.clip:personel chief:id982
$ cut -d: -f3 a
id897
id666
id982
從/etc/passwd截取使用者名稱和使用的shell:
$ cut -d: -f1,7 /etc/passwd
root:/bin/sh
tfj:/bin/bash
....

paste: 粘貼
paste -d: f1 f2        % 兩檔案不必具有相同的行數
-d 指定分隔字元預設空格
$ more a
tfj
zyc
$ more b
id111
id222
$ paste a b
tfj id111
zyc id222

split:分割大檔案
split -N file            % N為分割後檔案的行數(最大為1000)
產生的小檔案以xaa,xab,xac.....xzz命名.

tr: 從stdin中通過替換或刪除操作進行字元轉換
tr -cds pattern-string string_to_be_manipulated

$ echo "aaaaaabbcccd" | tr -s "[a-z]"
abcd
刪除空行:
$ tr -s "[/n]" < file
大寫轉小寫:
$ cat file | tr "[A-Z]" "[a-z]"
tr的功能用sed都能實現.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.