shell--管道命令(pipe)


管道命令使用的是|”這個界定符號

管道命令|”僅能處理經由前面一個命令傳來的正確信息,也就是standard output的信息,對於standard error並沒有直接處理的能力

每個管道后面接的第一個數據必定是“命令”,而且這個命令必須要能夠接受 standrad input的數據才行,這樣的命令才可以是“管道命令”。例如 less,more,head,tail等都可以接受standard input的管道命令。至於ls,cp,mv等就不是管道命令了

也就是說管道命令主要有兩個比較需要注意的地方:

管道命令僅會處理standard output,對於standard error output 會予以忽略

管道命令必須要能夠接受來自前一個命令的數據成為standard input繼續處理才行

 

選取命令:cut,grep

選取命令就是將一段數據經過分析后,取出我們所想要的,或者是經由分析關鍵字,取得我們所想要的那一行。需要注意,一般來說,選取信息通常是針對“行”來分析的,並不是整片信息分析

cut

cut -d ’分割字符’ -f fields    用於分割字符

cut -c 字符范圍  用於排列整齊的信息

參數:

-d:后面接分割字符,與-f一起使用

-f:依據-d的分割字符將一段信息切割成為數段,用-f取出第幾段的意思

-c:以字符(characters)的單位取出固定字符區間、

例如

root@DESKTOP-J295FSF:/mnt/c/Users/vivi# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

 

root@DESKTOP-J295FSF:/mnt/c/Users/vivi# echo $PATH |cut -d ':' -f 5

/sbin

 

root@DESKTOP-J295FSF:/mnt/c/Users/vivi# echo $PATH |cut -d ':' -f 3,5

/usr/sbin:/sbin

 

root@DESKTOP-J295FSF:/mnt/c/Users/vivi# export

declare -x HOME="/root"

declare -x HOSTTYPE="x86_64"

declare -x LANG="en_US.UTF-8"

declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"

declare -x LESSOPEN="| /usr/bin/lesspipe %s"

declare -x LOGNAME="root"

 

root@DESKTOP-J295FSF:/mnt/c/Users/vivi# export|cut -c 12-

HOME="/root"

HOSTTYPE="x86_64"

LANG="en_US.UTF-8"

LESSCLOSE="/usr/bin/lesspipe %s %s"

LESSOPEN="| /usr/bin/lesspipe %s"

LOGNAME="root"

 

grep

cut是在一行信息當中取出某部分我們想要的,而grep則是分析一行信息,若當中有我們所需要的信息,就將該行拿出來,語法是這樣的

grep [-acinv] [--color-auto] ‘查找字符串’ filename

-a:binary文件以text文件的方式查找數據

-c:計算找到‘查找字符串’的次數

-i:忽略大小寫的不同,所以大小寫視為相同

-n:順便輸出行號

-v:反向選擇,即顯示出沒有‘查找字符串’內容的那一行

--color=auto:可以將找到的關鍵字部分加上顏色顯示

root@DESKTOP-J295FSF:/mnt/c/Users/vivi# last| grep 'root'

root@DESKTOP-J295FSF:/mnt/c/Users/vivi# last| grep -v 'root'

root@DESKTOP-J295FSF:/mnt/c/Users/vivi# grep --color=auto 'stop' catfile

ok now stop


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM