免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2416 | 回复: 13
打印 上一主题 下一主题

求肋:打印关键字所在的字符串(或者叫所在域或列) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-17 14:45 |只看该作者 |倒序浏览
现在我有一个需求 想在一个文本中打印出关键字所在的字符串 或者 说所在的列也行
举个例子:
一个文件内容为
abc   bcd  8001  smtpd.conf
http.conf  eee  yyy   xxxxxxxx   oooooooo
.......
类似上面这样 列没有规律  但目的很明确 就是要打印包含.conf这个关键字所在的字符串 如上就要打印出smtpd.conf 和http.conf
为什么说打印出包含的字符串或者列都可以  可以先过滤关键字成行 再按行去再过虑包含的列 这样都是可以的
但问题是一般都是过虑出行 没有过虑出过字符串 而且打印列 列所在的位置也不确定.

我想了两种思路:但都不知道如何来实现
1 有直接的命令可以打印出包含关键字的字符串 或者说可以按关键字所在的字符串按空格或者tab键进行分割
2 可以查出包含关键字所在的域或列号 再按列号进行打印

请各位大大帮我看下如何实现 .先谢谢了.

论坛徽章:
0
2 [报告]
发表于 2010-03-17 14:51 |只看该作者
{
     for (i=1;i<=NF;i++){
       if ( $i ~ /conf/ ){
          print $i
   }
  }
}

论坛徽章:
0
3 [报告]
发表于 2010-03-17 14:53 |只看该作者
awk '{for (i=1;i<=NF;i++) if ($i~/\.conf/) print $i}' file

论坛徽章:
0
4 [报告]
发表于 2010-03-17 14:57 |只看该作者
  1. grep -o "\<.[^ ]*\.conf\>" data
复制代码

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
5 [报告]
发表于 2010-03-17 14:57 |只看该作者
grep

论坛徽章:
0
6 [报告]
发表于 2010-03-17 14:59 |只看该作者
回复 3# ywlscpl

谢谢 真的很好很强大 {:3_200:}

论坛徽章:
0
7 [报告]
发表于 2010-03-17 15:04 |只看该作者
sunbw001 发表于 2010-03-17 14:57

grep -o "\<.[^ ]*\.conf\>" data
这个也挺强的 不过正则看得有点晕 能分解下吗?
另外 如果文本是  /usr/local/php/bin/php-fpm --fpm-config /home/server/test/config/php-fpm-api.conf
我现在过虑.conf 用上面的方法 少得到一个/   结果是home/server/test/config/php-fpm-api.conf

论坛徽章:
0
8 [报告]
发表于 2010-03-17 15:08 |只看该作者
grep -o "[^ ]*\.conf" data

论坛徽章:
0
9 [报告]
发表于 2010-03-17 15:10 |只看该作者
都一样哈

awk '/conf/{for (i=1;i<=NF;i++){if($i~/conf/){print $i;}}}' ajdata
smtpd.conf
http.conf

论坛徽章:
0
10 [报告]
发表于 2010-03-17 15:23 |只看该作者
回复 8# xiaoq3406


    grep -o "[^ ]*\.conf" data
grep -o "\<.[^ ]*\.conf\>"
这个方法有个片面性 就是这个是以.conf 结尾的 如果文本为 /usr/local/php/bin/php-fpm --fpm-config test/config/php-fpm-api.conf/home/server/
就过虑不出test/config/php-fpm-api.conf/home/server/   这个字符串了 可能还需要加些正则判断
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP