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

打印空行的行号

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}'
        
全部评论

相关推荐

2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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