2011-11-09 17 views
4

例えば、ファイルのsedの:のgrepや単語を含む文字列

blahblah 123.a.site.com some-junk 
yoyoyoyo 456.a.site.com more-junk 
hihohiho 123.a.site.org junk-in-the-trunk 
lalalala 456.a.site.org monkey-junk 

私は、彼らはすべて私はgrepすることが可能な共通部分a.siteを持って、各ラインの真ん中にすべてのそれらのドメインをgrepをしたいが、私は行全体を返さずにそれを行う方法を解決できませんか?

シンプルなgrepで十分ではないかもしれませんが、ここでsedや正規表現が必要でしょうか?

答えて

8
あなたが行うことができます

grep -o '[^ ]*a\.site[^ ]*' input 

または

awk '{print $2}' input 

または

sed -e 's/.*\([^ ]*a\.site[^ ]*\).*/\1/g' input 
+0

で何かを見つけるために、これを試してみてくださいありがとう、一番上のものはまさに私が必要なものです。これは私にもGoogleのためにいくつかの材料を与えているので、二重の感謝:) – jwbensley

3

その位置

$ sed -r "s/.* ([0-9]*)\.(.*)\.(.*)/\2/g" 

[0-9]* - For match number zero or more time. 
.*  - Match anything zero or more time. 
\.  - Match the exact dot. 
()  - Which contain the value particular expression in parenthesis, it can be printed using \1,\2..\9. It contain only 1 to 9 buffer space. \0 means it contain all the expressed pattern in the expression. 
+0

私のようなreg newbsの少し複雑な、あなたの答えを説明した方が良いでしょう:) – jwbensley

関連する問題