首页 > 试题广场 >

打印空行的行号

[编程题]打印空行的行号
  • 热度指数:67671 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
编写一个shell脚本以输出一个文本文件nowcoder.txt中空行的行号(空行可能连续,从1开始输出

示例:
假设 nowcoder.txt 内容如下:
a
b

c

d

e


f
你的脚本应当输出:
3
5
7
9
10
示例1

输入

a
b

c

d

e


f

输出

3
5
7
9
10
头像 郭富成
发表于 2021-07-28 17:50:05
正则匹配空行\s(匹配任何空白字符:包括空格,制表符,换页符等等.等价于[ \f\n\r\t\v])且输出带行号. ^匹配输入字符串的开始位置,$匹配输入字符串的结束位置.该题匹配空行可以用 ^\s*$ 作为目标正则,不是唯一,可根据正则语法自行灵活搭配拆分; grep使用: -n: 输出行号 展开全文
头像 牛客335851428号
发表于 2021-10-26 09:34:21
#!/bin/bash awk '/^$/{print NR}' nowcoder.txt #!/bin/bash是设置Shell解析器类型为bash类型 awk是数据解析工具 对文件或管道数据、终端输入数据逐行解析 默认以空格分隔 awk语法:awk 'pattern{命令}' 文件名 patt 展开全文
头像 -latch
发表于 2022-03-10 22:42:32
grep匹配空行,awk去掉冒号 grep -n '^$' nowcoder.txt | awk -F: '{print $1}' awk正则匹配空行,然后呢输出行数 awk '/^$/{print NR}' nowcoder.txt sed正则匹配空行,=输出行数 sed -n '/ 展开全文
头像 heituiiiii
发表于 2022-01-26 01:31:04
awk '/^$/ {print NR}' nowcoder.txt // 是 awk 正则匹配模式的符号 ^ 匹配输入字符串的开始位置 $ 匹配输入字符串的结束位置 NR 属于 awk 内部变量,表示:已经读出的记录数,就是行号
头像 AAA批发电锯
发表于 2023-06-06 12:32:55
#!/bin/bash num=0 while read line do ((num++)) [ "$line" == "" ] && echo $num done < nowcoder.txt exit 0
头像 牛客192393599号
发表于 2022-06-21 11:00:19
方法一 使用 grep 正则检索匹配空行,-n 参数输出对应行号,最后的结果使用awk将行号列取出来。 grep -n -e '^$' nowcoder.txt  | awk -F ":"  展开全文
头像 克里斯V
发表于 2022-07-19 23:39:51
grep -n ^$ nowcoder.txt|cut -d ':' -f 1
头像 牛客760135380号
发表于 2022-08-23 11:20:39
sed -n '/^**$/= ' nowcoder.txt 这样也可以
头像 函数依赖FD
发表于 2022-11-12 14:16:06
awk '/^$/{print NR}' nowcoder.txt
头像 Jaynean
发表于 2023-04-21 10:37:12
#!/bin/bash grep -n '^$' $1 | sed 's/://' 首先使用正则表达式 '^$'来获取空行,^代表行首,$代表行尾,然后 grep -n捕获该行,并且打印行号,但是结果是row: 的格式,因此需要将结果给去除:,因此将结果通过 | 管道符传给sed, sed 's 展开全文