Bash-remove-n-match
		
		
		
		Jump to navigation
		Jump to search
		
Really unique problem and resolution using awk found in reddit. [1]
input text1.txt has: hi 1 hi 2 hi 3 hi 4 hi 5 hello I want to delete 4 lines containing 'hi' wanted output: hi 5 hello
Unique answer:
awk '!/hi/||++n>4'
Possible alternate that would still require some work:
count=4 awk -e '
    /hi [[:digit:]]+/ && s++ < ENVIRON["count"] { next };
    {print};
' << EOT 
hi 1
hi 2
hi 3
hi 4
hi 5
hello
EOT