管線是將一個命令的標準輸出作為另一個命令的標準輸入,在數據需要經過多個步驟的處理之後才能得到我們想要的內容時就可以使用管線。在命令之間使用 | 分隔各個管線命令。
$ ls -al /etc | less提取指令
cut 對數據進行切分,取出想要的部分。提取過程一行一行地進行。
$ cut
-d :分隔符
-f :經過 -d 分隔後,使用 -f n 取出第 n 個區間
-c :以字符為單位取出區間範例 1:last 將顯示的登入者的信息,要求僅顯示用戶名。
$ last
root pts/1 192.168.201.101 Sat Feb 7 12:35 still logged in
root pts/1 192.168.201.101 Fri Feb 6 12:13 - 18:46 (06:33)
root pts/1 192.168.201.254 Thu Feb 5 22:37 - 23:53 (01:16)
$ last | cut -d ' ' -f 1範例 2:將 export 輸出的訊息,取得第 12 字符以後的所有字符串。
$ export
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/home/dmtsai"
declare -x HOSTNAME="study.centos.vbird"
.....(其他省略).....
$ export | cut -c 12排序指令
sort 進行排序。
$ sort [-fbMnrtuk] [file or stdin]
-f :忽略大小寫
-b :忽略最前面的空格
-M :以月份的名字來排序,例如 JAN,DEC
-n :使用數字
-r :反向排序
-u :相當於 unique,重複的內容只出現一次
-t :分隔符,默認為 tab
-k :指定排序的區間範例:/etc/passwd 內容是以 : 來分隔的,以第三欄來排序。
$ cat /etc/passwd | sort -t ':' -k 3
root:x:0:0:root:/root:/bin/bash
dmtsai:x:1000:1000:dmtsai:/home/dmtsai:/bin/bash
alex:x:1001:1002::/home/alex:/bin/bash
arod:x:1002:1003::/home/arod:/bin/bashuniq 可以將重複的數據只取一個。
$ uniq [-ic]
-i :忽略大小寫
-c :進行計數範例:取得每個人的登錄總次數
$ last | cut -d ' ' -f 1 | sort | uniq -c
1
6 (unknown
47 dmtsai
4 reboot
7 root
1 wtmp雙向輸出重定向
輸出重定向會將輸出內容重定向到文件中,而 tee 不僅能夠完成這個功能,還能保留屏幕上的輸出。也就是說,使用 tee 指令,一個輸出會同時傳送到文件和屏幕上。
$ tee [-a] file字符轉換指令
tr 用來刪除一行中的字符,或者對字符進行替換。
$ tr [-ds] SET1 ...
-d : 刪除行中 SET1 這個字符串範例,將 last 輸出的信息所有小寫轉換為大寫。
$ last | tr '[a-z]' '[A-Z]'col 將 tab 字符轉為空格字符。
$ col [-xb]
-x : 將 tab 鍵轉換成對等的空格鍵expand 將 tab 轉換一定數量的空格,默認是 8 個。
$ expand [-t] file
-t :tab 轉為空格的數量join 將有相同數據的那一行合併在一起。
$ join [-ti12] file1 file2
-t :分隔符,默認為空格
-i :忽略大小寫的差異
-1 :第一個文件所用的比較字段
-2 :第二個文件所用的比較字段paste 直接將兩行粘貼在一起。
$ paste [-d] file1 file2
-d :分隔符,默認為 tab分區指令
split 將一個文件劃分成多個文件。
$ split [-bl] file PREFIX
-b :以大小來進行分區,可加單位,例如 b, k, m 等
-l :以行數來進行分區。
- PREFIX :分區文件的前導名稱原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/275285.html
微信掃一掃
支付寶掃一掃