国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

轉-Shell筆記——命令:Sort,uniq,join,cut,paste,split

2024-06-28 13:20:31
字體:
來源:轉載
供稿:網友
轉-Shell筆記——命令:Sort,uniq,join,cut,paste,split

轉自:http://blog.csdn.net/wklken/article/details/6562098

Sort,uniq,join,cut,paste,split

命令——Sort

Sort可將許多不同的域按不同的列順序分類

命令格式:

sort –cmu –o out-putfile [other options] *pos1 *pos2 input-files

選項:

-c測試文件是否已經分類

-m合并兩個分類文件

-u刪除所有復制行

-o存儲sort結果的輸出文件名

-b使用域進行分類是,忽略首個空格

-n指定分類是域上數字分類

-t域分隔符;用非空個或者tab鍵分割域

-r對分類次序或比較求逆

+n n為域號,使用此域開始分類

n n為域號,在分類比較時忽略此域,一般與+n一起使用

post m,n傳遞到m,n,m為域號,n為開始分類字符數

示例:

1.保存輸出

$sort –o result sortfile

$sort sortfile > result

Sort的啟動方式,sort認為一空格/多空格為分隔符,要加入其他的,必須使用-t,執行時,先查看-t,若是有,使用其進行分割,若是無,使用空格

2.查看文件是否已排序

$sort –c sortfile

3.使用其他分隔符

$sort –t: sortfile

4.排完序后求逆

$sort –t : -r sortfile

5.唯一分類,原文件中重復行去除

$sort –u sortfile

6.指定分類域,1開始

$sort –t : -k 4 sortfile

$sort –t : -k 4 –k 1 sortfile

7.指定sort序列

$sort +0 -2 +3 sortfile

8.將兩個分類文件合并

$sort –m sorted-file1 sorted_file2

命令——uniq

Uniq從文本文件中去除或禁止重復行,一般uniq假定文件已分類排序,并且結果正確[sort –u唯一性選項去除所有的重復行]

Uniq中重復行指持續不斷重復出現的行

格式:uniq –udc –f input-file output-file

選項:

-u只顯示不重復行

-d只顯示有重復的行,每種重復顯示一行

-c打印每一重復行出現的次數

-f n為數字,前n個域被忽略

1.只顯示非重復行

$uniq –u sortfile

2.提取非重復行到某個文件

$uniq –u sortfile result

3.只顯示重復行

$uniq –d sortfile

4.打印重復行及其出現的次數

$uniq –c sortfile

5.忽略比較指定列

$uniq –f2 parts.txt

命令——join

將來自兩個分類文本文件的行連在一起

前提:file1,file2已分類

每個文件都有一些元素與另一文件相關——連

有點像求并集

注:joio時文本域要少于20=

格式:join [options] input-fileinput-file2

選項:

ann為數字,用于連接時從文件n中顯示不匹配行,-a1表示第一個文件的不匹配行

o n,mn為文件號,m為域號,1,3表示只顯示文件1的第三域

j n mn為文件號,m為域使用其他域做連接域

t域分隔符用來設置非空格/非tab分隔符

1.連接兩個文件[默認連接域為域0]

$Join name.txt. turn.txt

2.顯示第一個文件的不匹配行

$join –a1 name.txt town.txt

3.設置顯示連接結果

$join –o 1.1,2.2 name.txt town.txt

第一個文件第一個域和第二個文件第二個域作為顯示結果

4.設置連接域

$join –j 1 3 –j 2 2 file1 file2

命令——cut

用來從標準輸入或文本文件中剪切列或域

可將剪切到的文本貼到另一個文件中

格式:cut [options] file1 file2

選項:

-c list指定剪切字符數

-f field指定剪切域數

-d指定與空格/tab不同的分隔符

-c指定剪切的字符范圍,字符,如-c 1,5,7第1,5,6,7字符-c 1-50前50個字符

-f指定剪切的域范圍-f 1,5剪切1,5兩個域-f 1,10-12剪切1,10,11,12四個域

1.使用域分隔符

$cut –d : -f3 data

[root@localhost temp]# cut -d: -f1 /etc/passwd |head -5rootbindaemonadmlp

–d : 指示cut改用:為分隔符,-f1表示第一個字段意思。

2.剪切指定域

$cut –d: -f1,3 data ##表示取出各行第一及第三個字段意思

3.剪切字符

$who –u| cut –c 1-8

[root@localhost temp]# who -uroot tty1 2011-10-19 22:09 old 2463 (:0)root pts/0 2011-11-0408:48 . 7804(192.168.0.86)root pts/2 2011-10-3109:25 old 18934(:0.0)root pts/3 2011-10-3109:47 old 18934(:0.0)[root@localhost temp]# who -u |cut -c 1-8rootrootrootroot

命令:paste

Paste將數據貼到相關文件中

存在兩個不同來源數據應先分類,確保文件行數同

格式:paste –d –s file1file2

選項:

-d指定不同分隔符

-s將每個文件合并成行而不是按行黏貼

File1

1

2

File2

A

B

1.合并之

$pastefile1 file2

1A

2B

2.指定分隔符

$paste–d: file2 file1

A:1

B:2

3.合并兩行,而非按行黏貼

$paste–s file1 file2

命令:split

用來將文件切分為小文件

格式:split–output_file_size input_filename output_filename

其中out_file_size為被分割行數,默認1000


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 娱乐| 宁夏| 黔西县| 广州市| 布尔津县| 南投县| 屯留县| 富蕴县| 齐河县| 合水县| 伊春市| 郎溪县| 仪征市| 安化县| 衡山县| 利川市| 白城市| 通化市| 洞头县| 河西区| 黄平县| 广南县| 崇阳县| 河西区| 安泽县| 乡城县| 望奎县| 古田县| 崇义县| 铅山县| 静安区| 兴和县| 威宁| 乐清市| 宁强县| 枣阳市| 故城县| 淮阳县| 北票市| 泰和县| 西华县|