shell文本過濾編程(十):cut命令

來源:互聯網
上載者:User

標籤:指令碼   sed   cut   

【著作權聲明:轉載請保留出處:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】

cut命令類似於awk,從行裡面抽取資訊,是一個功能弱化版的awk。

cut命令格式為:cut [options] filename
其中options有:
-d  指定與空格和t a b鍵不同的域分隔字元。類似於awk的“-F”。
-f field  指定剪下域數
-c list  指定剪下字元數。

首先我們來處理按:分割的password檔案:
# cat passwdroot:x:0:0:root:/root:/bin/shproxy:x:13:13:proxy:/bin:/bin/shoperator:x:37:37:Operator:/var:/bin/shftp:x:83:83:ftp:/home/ftp:/bin/shnobody:x:99:99:nobody:/home:/bin/shsshd:x:103:99:Operator:/var:/bin/sh
按:分割,然後取第一列和第六列,-f可以指定擷取的域數:
# cut -d: -f1,6 passwdroot:/rootproxy:/binoperator:/varftp:/home/ftpnobody:/homesshd:/var
指定域數還可以這樣寫:
# cut -d: -f 1-4,6 passwdroot:x:0:0:/rootproxy:x:13:13:/binoperator:x:37:37:/varftp:x:83:83:/home/ftpnobody:x:99:99:/homesshd:x:103:99:/var
awk的實現為:
# awk -F: 'BEGIN{OFS=":"}{print $1,$2,$3,$4,$6}' passwd    root:x:0:0:/rootproxy:x:13:13:/binoperator:x:37:37:/varftp:x:83:83:/home/ftpnobody:x:99:99:/homesshd:x:103:99:/var
但是如果要指定多個字元來分割的話,cut就不行了,cut只支援單個分隔字元,二awk支援多個。比如我們以“bin”分分隔:
# awk -F"bin" 'BEGIN{OFS=":"}{print $1}' passwdroot:x:0:0:root:/root:/proxy:x:13:13:proxy:/operator:x:37:37:Operator:/var:/ftp:x:83:83:ftp:/home/ftp:/nobody:x:99:99:nobody:/home:/sshd:x:103:99:Operator:/var:/
使用cut:
# cut -d"bin" -f1 passwd                                      cut: the delimiter must be a single characterTry 'cut --help' for more information.
這裡可以看見cut命令的功能很有限。
cut預設以tab鍵來分割,awk預設以空格或多個空格或tab鍵來分割:
# sed 's/:/\t/g' passwd | cut -f5rootproxyOperatorftpnobodyOperator# sed 's/:/\t/g' passwd | awk '{print $5}'rootproxyOperatorftpnobodyOperator
cut可以剪下第任一字元,看似功能強大,但很少有使用價值。使用- c選項指定精確剪下數目。這種方法需確切知道開始及結束字元。通常不用這種方法,除非在固定長度的域或檔案名稱上。
來看幾個例子就行了:
# cut -c1,2,4 passwdrotprxoprft:noossd
# cut -c5-9 passwd       :x:0:y:x:1ator:x:83:dy:x::x:10

shell文本過濾編程(十):cut命令

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.