Question Utilisation du script Bash pour rechercher le numéro de ligne de la chaîne dans un fichier


Comment puis-je utiliser un script bash pour trouver le numéro de ligne où se trouve une chaîne?

Par exemple si un fichier ressemblait à ceci,

Hello I am Isaiah
This is a line of text.
This is another line of text.

et j'ai exécuté le script pour rechercher la chaîne "line" qui serait le numéro 2, car c'est la première occurrence.


16
2017-11-17 02:13


origine


Réponses:


Étant donné que votre exemple imprime uniquement le numéro de ligne de la première occurrence de la chaîne, vous recherchez peut-être:

awk '/line/{ print NR; exit }' input-file

Si vous voulez réellement toutes les occurrences (par exemple, si la sortie souhaitée de votre exemple est en fait "2 \ n3 \ n"), omettez le exit.


31
2017-11-17 02:21



J'aime le commentaire de Siddhartha sur l'OP. Pourquoi il ne l'a pas affiché comme une réponse m'échappe.

Je veux juste le numéro de ligne de la première ligne qui montre ce que je cherche.

lineNum="$(grep -n "needle" haystack.txt | head -n 1 | cut -d: -f1)"

Expliqué: après le grep, prenez juste la première ligne (num: ligne), Couper par le colon élimiter et saisir le premier Fchamp


1
2017-11-28 21:26