ccnafuture 发表于 2014-12-23 21:08:59

LINUX中grep用法问题

有个习题:将/etc/termcap内容取出后,去除开头为#的行、去除空白行、取出开头为英文字母的那几行以及最终统计总数该如何进行?
我的程序: grep -v '^$' | grep -v '^$' | grep -n '^[[:alpha:]]'| less这个是符合题意的,如图1:
但是发现那个 -n 显示行数的参数放在第几个grep 后出现的结果是不一样的。拿这个举例 grep -v '^$' | grep -v '^$' | less,词句输出为如图2:
grep -v '^$' | grep -vn '^$' | less 如图3.grep -vn '^$' | grep -v '^$' | less如图4   grep -vn '^$' | grep -vn '^$' | less 如图5.
变量输出从左到右输出的,那这样的话这个 -n 要实现复杂的输出时,到底放在哪个地方?

duilie1111 发表于 2014-12-23 22:06:34

拿分走人呵呵,楼下继续!

加勒比汉堡 发表于 2014-12-23 22:23:16

{:6_276:}{:6_276:}{:6_276:}

掉葛根 发表于 2014-12-24 17:10:33

楼主想表达什么?你想在哪一步显示行号就在哪一个grep那里加上 -n,你-n的位置不同当然显示的结果会不同了啊,如你的这道题,你是要求在过滤了#号行又过滤了空行,然后再取出开头为英文字母的结果,然后把这个结果统计是多少行对吧,那你的-n肯定是在最后一个grep那里加啦。你前面做的几次过滤根本没让统计是多少行所以不用加-n,正常做过滤的操作即可,然后把结果用管道符| 传递给下一个要执行的操作,这样讲明白否?

itlhq 发表于 2015-1-5 16:04:27

没看到你过滤以#开头的行

null2018 发表于 2015-1-23 15:18:03

{:soso_e102:}

荒耐 发表于 2015-9-24 19:31:11

放在|后面

myxj979899 发表于 2015-10-9 11:46:35

努力回帖赚取金钱

ray2590011 发表于 2015-10-16 20:32:44

Linux新手学习大家是觉得看普通的教学视频还是看
页: [1]
查看完整版本: LINUX中grep用法问题