檔案尋找工具
檔案尋找工具:grep,egrep ,fgrep
下面主要介紹:grep和sed命令
行首錨定符^PATTERN
行尾錨定符$
\<PATTERN 詞首錨定符 加上引號單雙都行
PATTERN\>詞尾 錨定符
. 匹配任意單個字元 不匹配斷行符號符
* 匹配此前的字元0到任意次
。*匹配任意長度的任一字元
Regex工作在貪婪模式:儘可能長的匹配符合模式的字串
精確匹配次數
? 匹配此前的字元0次或1次 ;
\{m,n\} 至少m次。至多n次
\{0,5}
[ ]匹配指定範圍內的任意單個字元
[^] 匹配指定範圍外的任意單個字元
-v 不匹配的-i 忽略大小寫
- r
-B 後面跟的是數字n,顯示前n行
-A 顯示後n行
-C 顯示前後n行
-O 顯示匹配的字串而非尋找的那一行
-E 支援擴充Regex的
\(\) \1 , 引用 此前括弧內 的內容
擴充Regexgrep -E
{}()|(或者)+(匹配一次)
標準輸入:keyboard 用0來表示
標準輸出:monitor 用1來表示
標準錯誤輸出:monitor 用2來表示
重新導向:
>輸出重新導向 覆蓋 不可返
>>追加重新導向相當於重新寫入
可以用set來設定是否用輸出重新導向:
set -C 不能用>
set +C 繼續使用>
錯誤輸出重新導向:2> 只定向正確輸出
2>>加重新導向
整合正確錯誤的資料流在一個檔案中: &>
在Linux系統中命令執行結後,都有一個返回碼
成功執行:0 錯誤:1-255
擷取傳回值 echo $?
/dev/null,bit bucket, 位桶
<輸入重新導向
<<
cat > /tmp/a.out << END
管道:|
把前一個命令的輸出當作前一個命令的輸入
COMMAND1 | COMMAND2 | COMMAND3
sed
使用基本Regex
stream editor 行編輯器
非互動式編輯器
沒有破壞性
命令:
d 刪除行;
使用方式:sed "ADDR1 ,ADDR2/command" inputfile
,表示一個範圍
也可以用字元匹配來用:
/PATTERN/command
/PATTERN1/,/PATTERN/
p 顯示出模式比對的行 顯示兩次 即是列印命令
-n 只顯示模式匹配到的內容 即set -n ...
a\ 在匹配到的一行後添加一行\n
i\命令游標在匹配到行的上方
!對匹配條件取反的
s 尋找替換
s@@@ g i標誌位
sed的常用選項:
-n :quiet
-e : -e '' -e ' '一次指定多個條件
-i :可直接修改原檔案
-f :可以讀取sed指令碼
本文出自 “linux學習” 部落格