Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Afficher 10 lignes avant ou apres la position d'une string dans un fichier texte

10 réponses
Avatar
lepierot
Bonjour,

Je souhaiterais savoir comment afficher x lignes avant ou apres une
position precise dans un fichier texte.

Je recherche une string dans un fichier texte et je souhaite afficher
la cinquieme ligne avant cette string !!!!!



merci

10 réponses

Avatar
JustMe
Pierre HIRTH wrote:

Bonjour,

Je souhaiterais savoir comment afficher x lignes avant ou apres une
position precise dans un fichier texte.

Je recherche une string dans un fichier texte et je souhaite afficher
la cinquieme ligne avant cette string !!!!!



merci


man grep

--before-context

Avatar
Laurent Wacrenier
JustMe écrit:
man grep

--before-context


C'est spécifique à GNU grep.

Avatar
Stephane Chazelas
2004-07-2, 02:20(-07), Pierre HIRTH:
[...]
Je recherche une string dans un fichier texte et je souhaite afficher
la cinquieme ligne avant cette string !!!!!


awk '/string/ && NR > 5 {print n[NR%5];exit} {n[NR%5]=$0}'

Avec le GNU grep:

grep -m1 -B5 string | head -1

Attention toutefois, si "string" apparait dans les 5 premieres
lignes, ce ne sera pas la ligne 5 lignes avant (et pour cause)
qui sera affichee.

--
Stephane

Avatar
Laurent
On 2004-07-02, Pierre HIRTH wrote:
Bonjour,

Je souhaiterais savoir comment afficher x lignes avant ou apres une
position precise dans un fichier texte.

Je recherche une string dans un fichier texte et je souhaite afficher
la cinquieme ligne avant cette string !!!!!



avec ed
/string/+5p
/string/-5p

--
Laurent


Avatar
DominiX
ici même:,
Pierre HIRTH a écrit
Bonjour,

Je souhaiterais savoir comment afficher x lignes avant ou apres une
position precise dans un fichier texte.

Je recherche une string dans un fichier texte et je souhaite afficher
la cinquieme ligne avant cette string !!!!!



merci


perl -nle 'push @F,($_); print $F[$. -6] if /cequiestcherche/' file

-- dominix

Avatar
lepierot
Dans la commande
awk '/string/ && NR > 5 {print n[NR%5];exit} {n[NR%5]=$0}'


comment remplacer string par une variable passée en parametre ?

Merci


Stephane Chazelas wrote in message news:...
2004-07-2, 02:20(-07), Pierre HIRTH:
[...]
Je recherche une string dans un fichier texte et je souhaite afficher
la cinquieme ligne avant cette string !!!!!


awk '/string/ && NR > 5 {print n[NR%5];exit} {n[NR%5]=$0}'

Avec le GNU grep:

grep -m1 -B5 string | head -1

Attention toutefois, si "string" apparait dans les 5 premieres
lignes, ce ne sera pas la ligne 5 lignes avant (et pour cause)
qui sera affichee.



Avatar
Stephane Chazelas
2004-07-5, 02:08(-07), Pierre HIRTH:
Dans la commande
awk '/string/ && NR > 5 {print n[NR%5];exit} {n[NR%5]=$0}'


comment remplacer string par une variable passée en parametre ?
[...]


awk -v pattern="$STRING" '$0 ~ pattern && NR ...

--
Stephane


Avatar
Moi Moi
Laurent Wacrenier <lwa@ teaser . fr> wrote in
news::

JustMe écrit:
man grep

--before-context


C'est spécifique à GNU grep.



comme tous les arguments à rallonge liés à getopt_long
yaqueue chez GNU qu'on préfère taper --help que -h


Avatar
Stephane Chazelas
2004-07-12, 18:07(+00), Moi Moi:
[...]
comme tous les arguments à rallonge liés à getopt_long
yaqueue chez GNU qu'on préfère taper --help que -h


D'un autre coté, ya que chez GNU qu'on sait que si on tape
"commande --help" on aura l'aide. De plus, avec les completions
intelligentes de certain(s) shells, ce n'est pas beaucoup plus
long a taper et lister les completions revient a voir une aide
en ligne vu que les noms des options sont assez explicites. Les
outils GNUs ont en general les deux types d'options (au moins
pour les plus usuelles).

"-h" correspond a l'aide sur assez peu de commandes.
Pas faire un "shutdown -h" pour avoir l'aide de shutdown, par
exemple...

--
Stephane

Avatar
Laurent Wacrenier
Stephane Chazelas écrit:
"-h" correspond a l'aide sur assez peu de commandes.
Pas faire un "shutdown -h" pour avoir l'aide de shutdown, par
exemple...


Pour celles qui lisent leurs options avec getopt(), on peut
faire « -? » qui est ce qui est vu en cas d'option invalide.

# shutdown -?
shutdown: illegal option -- ?
usage: shutdown [-] [-h | -p | -r | -k] [-o [-n]] time [warning-message ...]