I/O
Input設備
Output設備
系統設定
默認輸出設備:標準輸出 STDOUT
默認輸入設備:標準輸入 STDIN
標準錯誤輸出:STDERR 2
標準輸入:鍵盤
標準輸出和標準錯誤輸出:顯示器
I/O重定向
linux中:
>:覆蓋輸入
>>:追加輸出
set -c:進制對已經存在的文件覆蓋重定向。強制覆蓋輸出澤恩使用>|
set +c關閉上述功能
2>:重定向錯誤輸出
2>>:追加錯誤輸出
&>:重定向標準輸出或錯誤輸出至同一個文件
<:輸入重定向
<<:Here Document
管道:前一個命令的輸出,作爲後一個命令輸入的
命令1|命令2|命令3...
grep及其egrep
grep的用法
grep,egrep,fgrep 用法:grep 'root' /etc/...
grep:根據模式搜索文本,並將符合模式的文本行顯示出來
Pattern(模式):文本字符和正則表達式的元字符組合而成的匹配條件
grep [options] PATTERN [file...]
-i:不考慮大小寫
--color 顯示匹配條件爲高亮顏色
-v:顯示沒有匹配到的行(反向顯示)
-o:只顯示被模式匹配到的字符串
-E:擴展表達式
-A#:(#爲數字)顯示其後#行
-B#:顯示其前#行
-C#:顯示其前後#行
正則表達式:REGular EXpression REGEXP
元字符:
.:單個字符
匹配次數(貪婪模式)
*:匹配其前面字符任意次
a*B -->任意次a
.*:任意長度的任意字符
\?:匹配其前面字符1次或0次
\{m,n\}:匹配其前面的字符至少m次,至多n次
\{1,\}:至少1次,至多不限
\{0,3\} :至少不限,至多3次
位置錨定:
^:錨定行首,此字符後面的任意內容必須出現在行首
$:錨定行尾,此字符前面的任意內容必須出現在行尾
^$:空白行
\<或\b:其後面的任意字符必須以單詞首部出現
\<或\b:其前面的任意字符必須以單詞尾部出現
注意\b位置
分組:
\(ab\)*
後向引用
\1:引用第一個左括號與之匹配的右括號所包括的內容
\2:引用第二個。。。。。。。
[]:匹配指定範圍內的任意單個字符
[^]:匹配範圍外的任意單個字符
字符集合:[:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alnum:]
數字 ,小寫字母,大寫字母,標點 ,空白 ,所有字符字母
fgrep:不支持正則表達式(搜索速度快)
擴展正則表達式:
grep -E =egrep
字符匹配:.,[],[^]
次數:*,?,+(匹配其前的字符至少1次)=\{1,\}
位置錨定:^,$,\<,\>
分組:() \1,\2,\3,......
或者: "a|b"
習題:找到a.txt中1--255的整數(默認爲整數)
egrep '\<(1-9)|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]' a.txt
找出a.txt中的IP地址:
IPV4:5類:A,B,C,D,E
A:1-127 B:128-191 C:192-223