题解 | #打印空行的行号#

打印空行的行号

http://www.nowcoder.com/practice/030fc368e42e44b8b1f8985a8d6ad255

题目: 输出一个文本文件中的所有空行的行号;

思路一:关于行号的第一思路是: grep -n 所有有了如下解题方法:

     grep -n  '^$' test.txt | awk -F ':' {print $1}
     [解析]: 
           grep -n  打印满足要求的行,并显示行号; 这里筛选的条件是以 $ 开头的行,也就是空行; 打印结果格式为:【行号:行内容】
            这种情况下,就要用到awk 进行筛选了,以『:』 为分隔符, 筛选第一部分;
     【扩展解析】:
          1) grep -n  打印满足要求的行,并显示行号;
          2) grep -v  打印不满足要求的行,并显示行号;
          3) grep -i  打印满足要求的行,忽略大小写;
          4) grep -A2 打印满足要求的行,及其下面两行;
          5) grep -B2 打印满足要求的行,及其上面两行;
          6) grep -C2 打印满足要求的行,及其上下各两行;
          7) grep '[0-9]'  打印包含数字的行;
          
     【扩展举例】:
         1)过滤出不包含数字的行:    grep -nv '[0-9]'  test.txt
         2) 过滤出不以字母开头的行:  grep -nv '^[a-zA-Z]'  test.txt
         3)去掉一个文件中所有的空行: grep -v '^$'  test.txt

思路二:通过题解,学会一种新的方法:

    awk '{if(NF==0) print NR}'  test.txt
    【解析】: 
       1)awk 两个重要的常量参数: NR:记录文件每一行的行号,从1开始;  NF:记录文件每一行的列数,按照分隔符为划分; 
       2)awk 和if连用: 用法是:  awk '{if($1==1) print 1; else if($1==2) print 2; else print 3}'
        
全部评论

相关推荐

06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:29
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务