1. 程式人生 > >第十一章習題答案

第十一章習題答案

linux

第十一章練習題答案?
1. 如何把 /etc/passwd 中用戶uid 大於500 的行給打印出來?
awk -f ‘:‘ ‘$3 > 500‘ /etc/passwd?

2. awk中 nr,nf兩個變量表示什麽含義awk -f ‘:‘ ‘{print $nr}‘ /etc/passwd 會打印出什麽結果出來?
nr表示行數,nf表示一共有多少段?
awk -f ‘:‘ ‘{print $nr}‘ /etc/passwd 會依次打印對應的行數的段,第一行打印第一段,第二行打印第二段... 到了最後就打印空行了?

3. 用grep把1.txt文檔中包含‘abc‘或者‘123’的行過濾出來,並在過濾出來的行前面加上行號.?

grep -e -n ‘abc|123‘ 1.txt?

4. grep -v ‘^$‘ 1.txt 這樣會過濾出哪些行?
會把非空行過濾出來?

5. ‘.‘ ‘*‘ 和 ‘.*‘ 分別表示什麽含義‘+‘和‘‘表示什麽含義,這五個符號是否可以在grep中使用,是否可以在egrep、sed以及awk中使用?
‘.‘ 表示一個任意的字符;?
‘*‘ 表示前面緊鄰的那個字符有零個或多個,即前面緊鄰的那個字符可以不存在,也可以有多個;?
‘.*‘ 表示零個或多個的任意字符,包括空行;?
‘+‘ 表示前面緊鄰的那個字符有一個或多個;?
‘‘ 表示前面緊鄰的那個字符有零個或一個;?
grep和sed可以使用‘.‘ 、 ‘*‘ 和 ‘.*‘,但是不能使用‘+‘和‘‘ egrep和awk全部可以使用。?


6. grep 裏面用到一個 {} ,它用在什麽情況下?
{ },其內部為數字,表示前面的字符要重復的次數。數字可以是單個數字{n},也可以是一個區間{n1,n2}。註意,在字符串中,{ }左右都需要加上脫意字符 ‘’。?
例如, grep ‘o{3}‘ /etc/passwd //輸出有3連續的‘o‘的行?

7. sed有一個選項,可以直接更改文本文件,是哪個選項?
-i?

8. sed -i ‘s/.*ie//;s/["|&].*//‘ file 這條命令表示什麽操作呢?
該命令由;分割了兩部分,首先第一部分表示把file中出現的以ie結尾的字符串刪除,?
第二部分是把file中以"或|或&開頭的字符串刪除?


9. 如何刪除一個文檔中的所有數字或者字母?
刪除所有數字: sed -i ‘s/[0-9]//g‘ file?
刪除所有字母: sed -i ‘s/[a-z]//g‘ file?

10. 截取日誌1.log的第一段(以空格為分隔符), 按數字排序、然後去重,但是需要保留重復的數量如何做?
awk ‘{print $1}‘ 1.log |sort -n|uniq -c|sort -n?

11. 使用awk過濾出1.log中第7段(空格分隔)為‘200‘ 並且第8段為‘11897‘的行。?
awk ‘$7 == "200" && $8 == "11897"‘ 1.log?

12. 請比較這兩個命令的異同: grep -v ‘^[0-9]‘ 1.txt 和 grep ‘^[^0-9]‘ 1.txt?
grep -v ‘^[0-9]‘ 1.txt //輸出文件中不以數字開頭的行,但輸出空行?
grep ‘^[^0-9]‘ 1.txt //輸出文件中不以數字開頭的行,但不輸出空行?

13. awk中的$0表示什麽為什麽以下兩條命令的$0結果不一致呢 awk -f ‘:‘ ‘{print $0}‘ 1.txt 和 awk -f ‘:‘ ‘$7=1 {print $0}‘ 1.txt?
awk -f ‘:‘ ‘{print $0}‘ 1.txt //打印所有的行 ,即整個記錄?
awk -f ‘:‘ ‘$7=1 {print $0}‘ 1.txt //以冒號為分隔符,輸出時將每行的第七段的內容更改為1,並打印所有的行,此時並不會連帶分隔符一起輸出?

14. 使用grep過濾某個關鍵詞時,如何把包含關鍵詞的行連同上面一行打印出來,那下面一行呢同時上面和下面都打印出來呢?
grep -b1 上面一行?
grep -a1 下面一行?
grep -c1 上下各一行?

第十一章習題答案