打印空行的行号

来自linux中国网wiki
跳到导航 跳到搜索

打印空行的行号

 sed -n '/^$/   =' file

/^$/:这是一个正则表达式,表示匹配一行的开始和结束之间没有任何字符,也就是匹配空行

-n 是sed中的选项,用于抑制自动输出

= 是sed中的特殊命令,用于输出当前行的行号

grep

grep -n '^$' test.txt 
2:
4:

awk

awk '/^$/{print NR}' test.txt


解释:

    awk程序是由一系列的模式 - 动作(pattern - action)语句组成。在这里,/^$/{print NR}是一个awk语句。
    模式/^$匹配空行,^表示行的开始,$表示行的结束,两个连在一起就表示匹配空行(即没有任何字符的行)。
    动作print NR用于打印当前行的行号,NR是awk中的一个内置变量,它表示当前正在处理的行的行号。


/^$/:匹配空行。
NR:内置变量,表示当前行号。

cat

p cat  -n 11 | grep -E "^\s*[0-9]+\s*$"
     1	
     3	
     4	

cat -n file.txt
为文件的每一行添加行号。

grep -E "^\s*[0-9]+\s*$"

    -E:启用扩展正则表达式。
    ^\s*[0-9]+\s*$:
        ^:行的开头。
        \s*:匹配任意数量的空白字符。
        [0-9]+:匹配行号(至少一个数字)。
        \s*$:匹配行号后任意数量的空白字符直到行尾(表示空行)

references

https://blog.nowcoder.net/n/c23c332c03b64108bc87d6b09a981128 [[category:]]