标签:试题讲解
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
本文出自 “小曾” 博客,请务必保留此出处http://zengxin.blog.51cto.com/6098070/1786154
标签:试题讲解
原文地址:http://zengxin.blog.51cto.com/6098070/1786154