學習筆記之一:學習中好的試題

1、已知如下命令結果:

[root@www ~]# echo "I am oldboy myqq is 48939492" >>oldboy.txt

[root@www ~]# cat oldboy.txt 

I am oldboy myqq is 48939492

現在需要從文件中過濾“oldboy”和“48939492”字符串

解答:

  方法1:

[root@www ~]# awk -F " " '{print $3,$6}' oldboy.txt  -->F:指定分隔符
oldboy 48939492

  方法2:

[root@www ~]# cut -d" " -f3,6 oldboy.txt -->-d選項是:指定分隔符
 oldboy 48939492

  方法3:

[root@www ~]# cut -c 6-11,20- oldboy.txt -->使用cut的-c選項過濾出來,根據字符數匹配。
 oldboy 48939492

  方法4:

[root@www ~]# echo `grep -oE "oldboy|48939492" oldboy.txt` -->-E:代表使用擴展正則表達式
 oldboy 48939492

  或者:

[root@www ~]# echo `egrep -o "oldboy|48939492" oldboy.txt` -->grep -E等於 egrep
 oldboy 48939492

  方法5:

[root@www ~]# sed -r 's#.*(oldboy).*(48939492)#\1 \2#g' oldboy.txt -->使用sed後相引用,-r代表使用擴展正則表達式
oldboy 48939492
或者:
[root@www ~]# sed 's#.*\(oldboy\).*\(48939492\)#\1 \2#g' oldboy.txt
oldboy  48939492

2、已知如下命令結果:

[root@www ~]# cat oldboy.txt 

I am oldboy,myqq is 48939492

現在需要從文件中過濾“oldboy”和“48939492”字符串

解答:

   方法1:

[root@www ~]# cut -c 6-11,20- oldboy.txt 
 oldboy 48939492

   方法2:

[root@www ~]# sed 's#,# #g' oldboy.txt|cut -d " " -f3,6
 oldboy 48939492

   方法3:

 [root@www ~]# awk -F "[ ,]" '{print $3,$6}' oldboy.txt -->這裏使用多個分隔符
  oldboy 48939492

   方法4:

[root@www ~]# echo `grep -oE "oldboy|48939492" oldboy.txt`
 oldboy 48939492
 或者:
 [root@www ~]# echo `egrep -o "oldboy|48939492" oldboy.txt`
 oldboy 48939492

   方法5:

 [root@www ~]# sed 's#.*\(oldboy\).*\(48939492\)#\1 \2#g' oldboy.txt
 oldboy 48939492
 或者:
 [root@www ~]# sed -r 's#.*(oldboy).*(48939492)#\1 \2#g' oldboy.txt
 oldboy 48939492


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