GNU/Linux >> Linux Esercitazione >  >> Linux

Come afferrare una parola specifica e afferrare il testo

Potresti usare -B1 per stampare anche la riga precedente e quindi prendere solo la prima riga:

$ grep -B1 'Minion' ip.txt
T5F6Z12:
   Minion did not return. [Not connected]
$ grep -B1 'Minion' ip.txt | head -n1
T5F6Z12:

Oppure fallo con awk :

$ awk '/Minion/{print p} {p=$0}' ip.txt
T5F6Z12:
$ awk '/Minion/{sub(/:$/, "", p); print p} {p=$0}' ip.txt
T5F6Z12

Qui p continua a salvare l'ultima riga. Quando la riga di input contiene Minion , quindi viene stampato. Nota che funzionerà per più corrispondenze a differenza del grep soluzione sopra la quale fornisce solo la prima corrispondenza.


Se sei legato a grep allora potresti mantenere le corrispondenze su più righe ...

file:

T5F6Z12:
   Minion did not return. [Not connected]
T5F6Z11:
   Pinion did return. [connected]
T5F6Z10:
   Minion did not return. [Not connected]

Utilizzando

grep -B 1 "Minion" file | grep ":$"
T5F6Z12:
T5F6Z10:

Se puoi usa sed poi c'è una risposta qui in U&L che ho plagiato di seguito

sed -n '/Minion/{x;p;d;}; x' file
T5F6Z12:
T5F6Z10:

Linux
  1. Linux:come grep per una parola specifica e afferrare il testo?

  2. Come copiare e incollare in Putty

  3. Come utilizzare il comando tshark di Wireshark per porte personalizzate e file di testo

  4. Come eseguire il grep per la parola esatta se la stringa contiene un punto

  5. Come combinare find e grep per una ricerca complessa? ( GNU/linux, trova, grep )

Come trovare una stringa o una parola specifica in file e directory

Come contare le occorrenze di parole in un file di testo

Come Grep per più stringhe e pattern

Come eseguire il backup e il ripristino della scheda SD per Raspberry Pi

Come trovare ed eliminare file che contengono un testo specifico nei loro nomi in Linux

Come trovare e sostituire testo, parola o stringa in un file