Se você tem o GNU sed, você pode usar a notação de endereço n~m
( n
skip m
)
sed '1~3d' file
que exclui todas as terceiras linhas, começando no primeiro.
Estou tentando excluir uma linha depois de N linhas usando o awk e não consigo acertar. O formato do arquivo é assim
YYYYYY
XXXXXX
XXXXXX
YYYYYY
XXXXXX
XXXXXX
O exemplo real seria
office3
3
1
office3
6
1
office3
6
3
office3
1
1
Como posso excluir as linhas YY ou as linhas que dizem "office". Preciso excluir uma linha a cada duas linhas, independentemente do conteúdo delas.
Para selecionar apenas as linhas modulo N
com awk
try
awk '!(NR%2)' file
ou
awk 'NR%3==0' file
Aqui NR
indica o número de linhas processadas até o momento.
No seu caso específico (remova todas as linhas com Y
):
$ echo 'YYYYYY
XXXXXX
XXXXXX
YYYYYY
XXXXXX
XXXXXX' | awk '!(NR%3==1)'
XXXXXX
XXXXXX
XXXXXX
XXXXXX
Tags text-processing awk sed