首页 > 试题广场 >

打印空行的行号

[编程题]打印空行的行号
  • 热度指数:60022 时间限制: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

i=1;while read p; do if [[ $p == '' ]]; then echo $i; fi; ((i++)); done < nowcoder.txt
i=1;while read p; do if [ -z $p ]; then echo $i; fi; ((i++)); done < nowcoder.txt
awk '/^$/ {print NR}' nowcoder.txt
sed -n '/^$/=' nowcoder.txt
grep -n '^$' nowcoder.txt | awk -F: '{print $1}'
grep -n "^$" nowcoder.txt | sed -n 's/\://p'
grep -n "^$" nowcoder.txt | sed 's/\://g'
grep -n "^$" nowcoder.txt | sed "s@:@@g"

发表于 2021-06-02 16:40:33 回复(3)
awk '/^$/ {print NR}'
发表于 2020-12-01 22:29:33 回复(0)
#!/bin/bash
awk '{if($0 == "") {print NR}}' ./nowcoder.txt

编辑于 2020-12-20 14:25:47 回复(2)
sed -n  '/^$/='  "nowcoder.txt"

-n 对匹配的行做处理

=打印匹配到的内容的行号
p打印匹配到的内容
发表于 2020-11-12 21:12:34 回复(2)
1.   grep -n '^$' nowcoder.txt |cut -d ':' -f 1
2.  grep -n '^$' nowcoder.txt | awk -F: '{print $1}'
3. grep -n '^$' nowcoder.txt | sed 's/\:/\ /g'
4. awk  'NF==0{print NR}'  nowcoder.txt
发表于 2021-11-02 19:15:19 回复(0)
awk '/^\s*$/{print NR}' nowcoder.txt
如果空行里面全都是空格或者有tab的话还得需要\s*来过滤一下,如果直接^$的话起不到过滤空格 tab的作用
发表于 2021-05-30 14:25:25 回复(0)
#!/bin/bash
#利用grep查找空行并打印(有冒号),然后用sed把冒号替换成空并打印
grep -n "^ $"  nowcoder.txt | sed -n 's@\:@@p'

发表于 2021-02-25 13:12:00 回复(3)
#!/bain/bash
grep -n "^$"  nowcoder.txt | cut -d ":" -f 1
发表于 2021-01-29 12:17:53 回复(0)
grep 指令用于查找内容包含指定的范本样式的文件
-n : 在显示符合样式的那一行之前,标示出该行的列数编号。
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
grep -n ^$ nowcoder.txt|cut -d ":" -f 1

发表于 2022-05-23 01:15:13 回复(0)
sed -n '/^$/='
awk '/^$/{print NR}'

发表于 2022-05-09 10:57:59 回复(0)

cat  -n nowcoder.txt  |  awk ' { if ( !$2 ) print $1 }'

编辑于 2024-04-10 21:54:06 回复(0)
#!/bin/bash
grep -n ^$ nowcoder.txt | awk -F : '{print $1}'
简单分析可以用grep匹配到对应的行号,此时数据是‘1:’,冒号用awk分割,取第一个即可
编辑于 2024-03-31 00:01:43 回复(0)
grep -n '\B' | cut -d ':' -f1
编辑于 2024-03-10 13:52:56 回复(0)
cat -n nowcoder.txt | awk '{if($2=="")print $1}'
发表于 2024-02-16 16:12:35 回复(0)
sed -ne '/^$/=;s/\://p' nowcoder.txt
发表于 2023-09-22 15:03:05 回复(0)
cat nowcoder.txt|grep -n '^$'|awk -F : '{print $1}'
发表于 2023-08-16 17:10:18 回复(0)
cat -n nowcoder.txt | grep -v [a-z]
发表于 2023-08-11 14:25:11 回复(0)

#!/bin/bash

i=1
while read line
do
    if [ -z $line ]
    then
        echo $i
    fi
    ((i++))
done < nowcoder.txt

发表于 2022-12-12 21:43:41 回复(0)
grep -n "^$" nowcoder.txt |awk -F ":" '{print $1}'
发表于 2022-10-26 17:08:29 回复(0)
awk '/^$/ {print NR}' nowcoder.txt
NR:文件的总记录数

发表于 2022-10-25 19:54:40 回复(0)