搜索关键字,如果匹配则选择除此之外的单词

时间:2013-04-22 05:09:35

标签: linux sed awk

255.255.0.0(queue=banglore)    
255.255.0.10(queue=hyderabad)    
255.255.1.2(cal = 10)      

我的剧本

command | awk '{print $3}' | sed '1,9d'

我的输出几乎与上面linux终端中显示的一样..

通过使用awk和sed脚本我删除了一些无用的事情。但是,现在我只想要带有大括号的队列名称(即只有单词banglorehyderabad)。如何获得那个。(使用sed) 并且该IP地址将迅速改变.. 提前谢谢..

3 个答案:

答案 0 :(得分:3)

简单grep解决方案:

$ grep -Po '(?<=queue=)[^)]*' file
banglore
hyderabad

答案 1 :(得分:2)

perl -lne 'if(/queue=/){m/\(queue=(.*?)\)/g;print $1}' your_file

测试如下:

> cat temp
255.255.0.0(queue=banglore)    
255.255.0.10(queue=hyderabad)    
255.255.1.2(cal = 10) 
>
>
> perl -lne 'if(/queue=/){m/\(queue=(.*?)\)/g;print $1}' temp
banglore
hyderabad
>

答案 2 :(得分:2)

awk版本:

awk -F '\\(|\\)|=' '{if($3 !~/(^ )/)print $3}' temp

临时文件:

255.255.0.0(queue=banglore)    
255.255.0.10(queue=hyderabad)    
255.255.1.2(cal = 10)

输出:

banglore
hyderabad