Linux管道命令詳解

來源:互聯網
上載者:User

Linux的管道命令是'|',通過它可以對資料進行連續處理,其示意圖如下:

注意:

1)管道命令僅為處理標準輸出(即正確的輸出),對於標準錯誤輸出,將忽略

2)管理命令的後一個命令必須能將前一個命令的標準輸出變為它的標準輸入才可以,如 less,more,head,tail就可以,而ls, cp, mv就不行。

下面我們看幾個管道命令。

cut - 列選取命令

cut以行為單位,根據分隔字元把行分成若干列,這樣我們就可以指定選取哪些列了。

cut -d '分隔字元' -f 選取的列數  echo $PATH|cut -d ':' -f 2  --選取第2列  echo $PATH|cut -d ':' -f 3,5  --選取第3列和第5列  echo $PATH|cut -d ':' -f 3-5  --選取第3列到第5列

cut有一個問題,就是在處理多個空格分隔的時候比較吃力。

grep - 行選取命令

grep分析一行資料,若當中有我們所需要的資訊,則顯示該行,否則忽略。

grep [-cinv] '尋找的字串' filename

-c:計算找到的次數

-i:忽略大小寫

-v:反向選擇

-n:輸出第幾行

sort - 排序

# cat /etc/passwd | sort   adm:x:3:4:adm:/var/adm:/sbin/nologin  avahi-autoipd:x:100:156:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin  avahi:x:70:70:Avahi daemon:/:/sbin/nologin  bin:x:1:1:bin:/bin:/sbin/nologin  daemon:x:2:2:daemon:/sbin:/sbin/nologin  dbus:x:81:81:System message bus:/:/sbin/nologin  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin  ......

從上面的結果我們可以知道,sort預設是以第一個字元升序排序,如果我想要以第3列降序數字排序怎 麼辦?

# cat /etc/passwd | sort -t ':' -k 3 -rn  nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin  test:x:504:505::/home/test:/bin/bash  sungh:x:503:504::/home/sungh:/bin/bash  zhoufei:x:502:503::/home/zhoufei:/bin/bash

聯繫我們

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