如果文件不包含指定的字符串,如何删除文件的第一行?
How to delete first line of a file if it does not contain a specified string?
我有这样的文件:
username
Total 0
username
Total 0
username
Total 0
username
Total 0
username
Total 0
但有些格式不正确,第一行不正确,如下所示:
Total 0
username
Total 0
username
Total 0
username
Total 0
username
Total 0
我需要一个单行,如果第一行不包含 username
,它将删除第一行
我用 sed 试过了,但它不起作用:
sed -e '1!b' -e '/username/!d'
perl -ne 'print if 1 != $. || /username/'
使用 awk
更容易做到这一点:
awk 'NR == 1 && [=10=] != "username" {next} 1' file
$ awk 'NR>1 || /username/' file
username
Total 0
username
Total 0
username
Total 0
username
Total 0
我有这样的文件:
username
Total 0
username
Total 0
username
Total 0
username
Total 0
username
Total 0
但有些格式不正确,第一行不正确,如下所示:
Total 0
username
Total 0
username
Total 0
username
Total 0
username
Total 0
我需要一个单行,如果第一行不包含 username
我用 sed 试过了,但它不起作用:
sed -e '1!b' -e '/username/!d'
perl -ne 'print if 1 != $. || /username/'
使用 awk
更容易做到这一点:
awk 'NR == 1 && [=10=] != "username" {next} 1' file
$ awk 'NR>1 || /username/' file
username
Total 0
username
Total 0
username
Total 0
username
Total 0