Help with replace line based on specific pattern match

Input file

data20714	7327	7366	detail	
data20714	7327	7366	main	
data250821	56532	57634	detail	
data250821	57527	57634	main	
data250821	57359	57474	main	
data250821	57212	57301	main	
data250821	57140	57159	detail
data250821	56834	57082	main	
data250821	56708	56779	main	
data250821	56532	56652	main	
.
.

Desired output file:


data20714	7327	7366	main	

data250821	57527	57634	main	
data250821	57359	57474	main	
data250821	57212	57301	main	

data250821	56834	57082	main	
data250821	56708	56779	main	
data250821	56532	56652	main	
.
.

My purpose is to replace the whole line with empty content when found that column 4 is "detail".
Thanks for any advice.

$ nawk '{if($4~/detail/){$0="";print}else{print $0}}' infile
1 Like
$
$
$ cat f24
data20714       7327    7366    detail
data20714       7327    7366    main
data250821      56532   57634   detail
data250821      57527   57634   main
data250821      57359   57474   main
data250821      57212   57301   main
data250821      57140   57159   detail
data250821      56834   57082   main
data250821      56708   56779   main
data250821      56532   56652   main
$
$
$
$ perl -plane '$_="" if $F[3] eq "detail"' f24

data20714       7327    7366    main

data250821      57527   57634   main
data250821      57359   57474   main
data250821      57212   57301   main

data250821      56834   57082   main
data250821      56708   56779   main
data250821      56532   56652   main
$
$

tyler_durden

1 Like
 
nawk '/detail/{print "";next}! /detail/{print}' input
1 Like