2014-04-23 25 views
0

我有文本文件,裏面有這樣的數據:獲取字符之間字符串中的Linux

asd.www.aaa.com 
abc.abc.co 
look at me 
asd.www.bbb.com 
bzc.bzc.co 
asd.www.ddd.com 
hello world 
www.eee.com 
xx.yy.z 

我想這是由"asd.www.[i want this string].com"包圍字符串。

所以我的輸出將是這樣的:

aaa 
bbb 
ddd 

回答

4

嘗試:

grep -Po '^asd\.www\.\K[^.]*(?=\.com)' file 

如果asd可能在字符串中間,除去第一^

有可能是其他角落的情況下,像貪婪的匹配等,這取決於你的源輸入。

+0

感謝您的解決方案。但我有問題,我不能把我的變量放在裏面。例如,我有一個變量「myvar」,我想在公式中替換它而不是「www」字符串。我嘗試了「$ {myvar}」,但它沒有奏效。我能怎麼做? – AloneInTheDark

+0

@AloneInTheDark單引號不會擴展shell var,請嘗試使用雙qoutes。 – Kent

2

我建議cut最初,但我誤解了你的問題。所以我打算用awk來替代。您正在查找總共四列的文本輸入的第三列。

less file.txt | awk -F '.' '{ if ($4 != "") print $3 }' 

這將您的上.字符串,只打印出列$3如果列$4是空白。這應該產生以下給出您的示例文本:

aaa 
bbb 
ddd 
相關問題