如何让grep忽略第一行并处理其他行

Apr*_*an8 4 linux grep sed

我需要删除某些 txt 文件中以“#”开头的行。但忽略第一行作为标题。如何使 grep 忽略第一行并删除其余行中以 # 开头的任何行?

cat sample.txt
#"EVENT",VERSION, NAME
1,2,xyz
1,2,abc
1,2,asd
1,2,ert
#"EVENT",VERSION, NAME
1,2,xyz
1,2,abc
1,2,xyz

cat sample.txt | grep -v "^\s*[#\;]\|^\s*$" > "out.txt"
Run Code Online (Sandbox Code Playgroud)

但这也删除了标题!

Cyr*_*rus 6

使用 sed:

sed '2,${/^#/d}' sample.txt
Run Code Online (Sandbox Code Playgroud)

从第二行 ( 2) 到最后一行 ( $):搜索 ( )以 ( )/.../开头的行并删除 ( ) 它们。sed 的默认操作是打印当前行。^#d

输出:

#“事件”,版本,名称
1,2,xyz
1,2,ABC
1,2,反式
1,2,呃
1,2,xyz
1,2,ABC
1,2,xyz