Rechercher des fichiers contenant une chaîne mais PAS sur la bonne ligne

0

A partir d'un répertoire donné, je cherche à déterminer quels fichiers:

  1. contenir pattern
  2. mais PAS sur la ligne 1

Je sais comment faire la partie 1 - grep -nHRF [pattern] [path]mais je cherche à filtrer en fonction de celles qui correspondent à la pattern, mais n'apparaissent pas à la ligne 1.

Kevin Suttle
la source

Réponses:

1

Quelque chose comme:

grep -n 'pattern' path | grep -v ':1:'
Toto
la source
0

Utilisation sedavec une plage d'adresses:

sed -n '2,/pattern/p' file

qui s’imprimera en ligne, en patternpartant de la 2e ligne du fichier.

oliv
la source
0

grep -nHRF pattern path mais sans la ligne 1, avec GNU sed, serait:

shopt -s nullglob globstar
for f in path/**; do
    sed -n '1n; /pattern/{F;=;p}' "$f"
done | paste -d: - - -

Vous devez effectuer une itération sur les fichiers, sinon =le nombre de lignes cumulées sera affiché à partir de toutes les lignes de tous les fichiers et 1nne correspondra que pour la première ligne du premier fichier.

Glenn Jackman
la source