LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2654|回复: 30

有趣的提取行号问题?

[复制链接]
发表于 2007-1-16 18:43:56 | 显示全部楼层 |阅读模式
今有一文本文件a,内容如下:
0
10
20
22
我提取0所在的行号.命令行如下:
P=0
n=$(grep -nH $P a | awk -F: '{print $2}')
得到如下结果:
1    2    3
也就是说,把所有含0这个数字的行都提取了出来.可我只想要0所在的行号1,哪位仁兄赐教一二?
发表于 2007-1-16 20:32:26 | 显示全部楼层
grep -n "\<0\>" file

较真一点是grep -n "\<0\>" file|awk -F":" '{ print $1 }'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-16 20:59:19 | 显示全部楼层
呵呵 这么快就有弟兄们伸出援助之手 着实出乎我的意料呀 谢谢这位朋友 也谢谢其他曾经帮助过我的朋友,也感谢咱的论坛给我们提供了一个共同成长的平台,祝各位朋友笑口常开,佑咱们的论坛越办越好!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-16 22:08:24 | 显示全部楼层
各位仁兄,楼上的兄台给我的帮助用到我做的事情上又出了点新问题,恭请再指教
现在把第二行内容多加一个0  即文本文件a内容如下:
0
0    10
20
22
我提取0所在的行号.命令行如下:
P=0
n=$(grep -nH "\<$P\>"  a | awk -F: '{print $2}')

得到如下结果:
1  2
我只想得到第一列是0其他列什么都没有的行的行号,也就是说我只想得到结果1,恭请仁兄再赐教一二!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-16 22:55:58 | 显示全部楼层

提取行号再讨论

有一文本文件a内容如下:
0
0 10
20
22
我提取0所在的行号.命令行如下:
P=0
n=$(grep -nH "\<$P\>" a | awk -F: '{print $2}')

得到如下结果:
1 2
我只想得到第一列是0其他列什么都没有的行的行号,也就是说我只想得到结果1,恭请各位仁兄再赐教!
回复 支持 反对

使用道具 举报

发表于 2007-1-16 22:59:04 | 显示全部楼层
awk '/^0$/ {print FNR}'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-16 23:11:32 | 显示全部楼层
呵呵  非常感谢lastart朋友提供的帮助, 不过,麻烦您写全好吗? 因为我是个菜鸟,笨啊!呵呵,先行谢过!
回复 支持 反对

使用道具 举报

发表于 2007-1-16 23:56:55 | 显示全部楼层
awk '/^0$/ {print FNR}' 文件名
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-17 11:52:45 | 显示全部楼层
呵呵 这样不行啊 得不到所要的结果 不过 还得谢谢lastart这位朋友给予的帮助
回复 支持 反对

使用道具 举报

发表于 2007-1-17 12:09:54 | 显示全部楼层
如何不行呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表