LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: wangyl86

有趣的提取行号问题?

[复制链接]
发表于 2007-1-18 00:46:33 | 显示全部楼层
awk '{if ($1 == $P && NF == 1) print NR}' p=0
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-18 09:36:23 | 显示全部楼层
这样得到的结果是1    3    4 不是只有一个1呀,还是不行呀.不过,还得谢谢Iambitious您能在百忙中给我提供帮助.
回复 支持 反对

使用道具 举报

发表于 2007-1-18 09:54:43 | 显示全部楼层
如果说 lastart 兄写的有不严谨的地方的话, 改成下面这样应该没问题了吧:

awk '/^0[[:blank:]]*$/ {print FNR}' filename
回复 支持 反对

使用道具 举报

发表于 2007-1-18 10:34:16 | 显示全部楼层
Post by rickxbx
如果说 lastart 兄写的有不严谨的地方的话, 改成下面这样应该没问题了吧:

awk '/^0[[:blank:]]*$/ {print FNR}' filename


这样就够了吧:
awk '/^0[ ]*$/ {print FNR}' filename

或者grep -n '^0[ ]*$' filename | cut -d':' -f1
回复 支持 反对

使用道具 举报

发表于 2007-1-18 10:38:08 | 显示全部楼层
Post by peter_huang
这样就够了吧:
awk '/^0[ ]*$/ {print FNR}' filename

或者grep -n '^0[ ]*$' filename | cut -d':' -f1


如果分割符是 tab 呢 :p
回复 支持 反对

使用道具 举报

发表于 2007-1-18 11:30:16 | 显示全部楼层
呵呵,谢谢ls的提醒。

如果在行尾想过滤tab,那么就[ ]*,
如果不想的话,那么就[[:blank:]]*
回复 支持 反对

使用道具 举报

发表于 2007-1-18 11:56:15 | 显示全部楼层
这阵子总犯白吃错误,以后回帖每次都要严格的执行一下。
awk '{if ($1 == p && NF == 1) print NR}' p=0
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-18 21:27:27 | 显示全部楼层
谢谢各位弟兄们的慷慨相助,大家提供的方法我一一作了测试,结果如下,:
rickxbx朋友提供的:
[wangyl@:~] $ awk '/^0[[:blank:]]*$/ {print FNR}' a
没出结果
peter_huang朋友提供的:
[wangyl@:~] $ awk '/^0[ ]*$/ {print FNR}' a
[wangyl@:~] $ grep -n '^0[ ]*$' a | cut -d':' -f1
  也没出结果
Iambitious老兄提供的
[wangyl@:~] $ awk '{if ($1 == p && NF == 1) print NR}' p=0 a
1
出来了正确的结果1
而且Iambitious提供的可以加进变量,比如:
[wangyl@:~] $ b=22
[wangyl@:~] $ awk '{if ($1 == p && NF == 1) print NR}' p=$b  a
4
出来正确的结果4.
rickxbx和peter_huang朋友提供的方法肯定也正确,但我是个菜鸟,可能操作有不当之处,或你们提供了关键部分,我不会变通.Iambitious不厌其烦的指点甚至还亲自执行一次着实令我感动.有你们相助对于linux学习我会信心倍增,进步非凡!再次感谢各位弟兄的慷慨相助!


附:测试命令行中的a是文本文件名,其内容如:
0
0 10
20
22
回复 支持 反对

使用道具 举报

发表于 2007-1-18 21:51:47 | 显示全部楼层
我现在怀疑你这个文件是不是在windows上打开过,如果是那样的话,在每行的结尾会多出一个\r,否则不应该上边两个人的脚本得不出结果.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-18 22:39:22 | 显示全部楼层
呵呵 经老兄一提醒 仔细的查了一遍 发现文本内容出了点小差错,即把:
0
0 10
20
22
内容中的 那第一个0放在了第二列上了,,很抱歉,Iambitious老兄,害你又费神斟酌了一遍.
重新执行了一遍,结果如愿!实在太感谢啦!
回复 支持 反对

使用道具 举报

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

本版积分规则

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