Comment écrire un filtre unix qui émet uniquement une ligne toutes les lignes N
Question
Supposons pour alimenter l'entrée de type de filtre avec ces lignes:
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
Il serait plus agréable si quelqu'un me dire comment écrire un script qui affiche seulement tous les 4 lignes, dans le cas de l'entrée exemple ci-dessus:
line 1
line 5
line 9
La solution
$ yes | cat -n | head -10 | awk 'NR % 4 == 1'
1 y
5 y
9 y
Voilà, votre réponse est "awk 'NR % 4 == 1'
".
Autres conseils
awk '{ if ((NR-1) %4 ==0) print}'
awk 'NR%4 == 1 {print}'</etc/hosts
Remplacer par 4 quelle que soit la valeur que vous voulez bien sûr.
sed -ne '1~4p’
(GNU sed
. Non testé sur Mac OS X, etc.)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow