《鳥哥的Linux私房菜》讀書筆記4

1. grep查找
grep 'string' filename;
last | grep 'root';
以行爲單位。
利用參數-i(忽略大小寫),-v(反相)等進行正則表達式;
‘’中可以爲正則表達式。
2. 正則表達特別的
空行'^$',即只有行首和行尾;'^a'表示以a開頭,'b$'表示以b結尾。
*表示重複前面的0個或多個字符;
a*,aa*,分別匹配<space>,a,aa,...和a,aa,aaa...,即aa*匹配者必須有一個a;
.表示除本身外任意字符,\.表示.。
3. 在shell中{和}具有特殊意義,故正則匹配n個字符時,需要轉義{和}:
\{n\}。
4. []表示一個:[a]
減號-表示連續:[0-9]
括號中的^表示反相:[^A-Z],非大寫字母。
開始時的^表示開頭;
5. sed工具(stream editor)
sed -e '2,5s/A/B/g',將第2到5行中的A替換爲B,/g全部替換。
s,替換;a,添加;d,刪除;c,取代;i,插入;
A,B可以是正則表達式。
6. awk命令
awk處理以空格或者Tab間隔的行內數據;
last | awk '{print $1 "\t" $4}',該命令表示列出登錄用戶名和登錄星期,兩者Tab隔開。
其中$1表示第一塊行數據,$2第二塊,...,$0表示整個行數據。
awk有幾個變量:
NF表示改行有多少字段,即多少列;NR表示正在處理的行號;
FS代表分割字符,默認空格,可以{FS=":"}修改。
awk可以處理邏輯運算:
last | awk '$1=="ltn" {print $1}'
輸出行第一字段爲ltn的第一地段。
注意:因爲awk先讀取第一行,而後處理預設條件等,因此可能第一行是個例外,此時需要先調用BEGIN命令。
7. 一些命令
printf,格式輸出;
last最後登錄者,30分鐘自動刷新;
ifconfig,IP等網絡信息。
8. 比較兩個文件diff,cmp
diff text.txt text1.txt,比較詳細列舉不同之處,以行作單位;
cmp text.txt text1.txt,默認列舉第一處不同,以位作單位。






 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章