檔案查找工具
檔案查找工具:grep,egrep ,fgrep
下面主要介紹:grep和sed指令
行首錨定符 ^PATTERN
行尾錨定符 $
\<PATTERN 詞首錨定符 加上引号單雙都行
PATTERN\>詞尾 錨定符
. 比對任意單個字元 不比對回車符
* 比對此前的字元0到任意次
。*比對任意長度的任意字元
正規表達式工作在貪婪模式:盡可能長的比對符合模式的字元串
精确比對次數
? 比對此前的字元 0次或1次 ;
\{m,n\} 至少m次。至多n次
\{0,5}
[ ]比對指定範圍内的任意單個字元
[^] 比對指定範圍外的任意單個字元
-v 不比對的 -i 忽略大小寫
- r
-B 後面跟的是數字n,顯示前n行
-A 顯示後n行
-C 顯示前後n行
-O 顯示比對的字元串而非查找的那一行
-E 支援擴充正規表達式的
\(\) \1 , 引用 此前括号内 的内容
擴充正規表達式 grep -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
使用基本正規表達式
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腳本
本文轉自 ZhouLS 51CTO部落格,原文連結:http://blog.51cto.com/zhou123/788095