標籤:linux 重新導向 管道 grep
今天我們來講下Linux中的重新導向、管道和grep命令。由於重新導向和管道知識點比較少,但是又比較重要所以和grep命令一起講。
在將重新導向我們先講下系統的標準輸入和輸出。在Linux中標準輸入(STDIN 0)對應裝置:鍵盤;標準輸出(STDOUT 1)和標準錯誤輸出(STDERR 2)對應裝置:顯示器。重新導向就是將標準輸入輸出重新置放到指定位置或者裝置中(比如:檔案)。
I/O重新導向
set –C 禁止對已存在的檔案進行覆蓋重新導向
強制覆蓋>|
set +C 關閉上述功能
輸出重新導向:
>:輸出重新導向,會進行覆蓋操作(原資料會被覆蓋)
>>:追加輸出重新導向,不進行覆蓋會進行追加輸出
2>:錯誤輸出重新導向
2>>:錯誤追加輸出重新導向
&>:重新導向標準輸出或者錯誤輸出至一個檔案
輸入重新導向:
<:輸入重新導向常值內容的重新導向樣本:“passwd --stdin user10 < var.out” 相同效果”cat var.out | passwd --stdin user10”
<<:Here Document cat << END(EOF) END為結束符
樣本:# cat >> var.out <<
EOF
> This first line
> The second
> EOF
管道
管道是將前一個命令的輸出作為後一個命令的輸入
命令1|命令2|命令3
命令1的輸出作為命令2的輸入,命令2的輸出作為命令3的輸入
樣本:cat var.out | passwd --stdin user10
密鑰產生樣本:echo "redhat" | openssl passwd -1-salt "12345678" –stdin
Regexgrep
依據模式去匹配對應的檔案並將匹配到的內容顯示出來
grep [options] PATTERN [FILE...]
PATTERN 文本字元和元字元組合而成的匹配條件
選項有
-A 顯示匹配的後幾行
-B 顯示匹配的前幾行
-C 顯示匹配的前後幾行
-E 使用擴充Regex
-i 匹配時忽略大小寫
-o 只顯示匹配的部分
-r 遞迴尋找匹配
元字元
.:匹配任意單個字元
[]:匹配指定範圍內的任意單個字元
[^]:匹配指定範圍外的任意單個字元
匹配次數(Regex工作在貪婪模式下)
*:匹配前面的字元任意長度
\?:匹配前面的字元0或1次
\{n,m\}:匹配前面的字元至少n次,至多m次 \{n\}=\{n,n\}
位置錨定
^:錨定在行數,匹配後面的內容出現在行首
$:錨定在行尾,匹配後面的內容出現在行尾
^$ 空白行
單詞中間沒有出現特殊字元的字串
\<(\b):單詞的詞首
\>(\b):單詞的詞尾
分組
\(\):將一系列的運算式作為一組
後面調用前面的運算式\1,\2 \1:表示第一個小括弧以及其對應的右括弧對應的所有內容
擴充運算式:
下面列出與上面不同的地方。
?:表示前面的字元出現一次或零次
+:表示前面的字元至少出現一次
{n,m}:表示前面的字元至少出現n次,至多出現m次
():表示分組
|:表示或者,匹配其中一個即可
結語:今天講的東西看似不是很多,但是他十分重要,在後面的shell編程中會大量用到管道和正則表達方式,所以需要多加練習。
本文出自 “11342100” 部落格,請務必保留此出處http://11352100.blog.51cto.com/11342100/1916308
Linux中重新導向、管道和grep命令總結