GNU/Linux >> Znalost Linux >  >> Linux

Jak najít konkrétní slovo a uchopit text

Můžete použít -B1 vytisknout i předchozí řádek a poté uchopit pouze první řádek:

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

Nebo to proveďte pomocí awk :

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

Zde p stále ukládá poslední řádek. Když vstupní řádek obsahuje Minion , pak se vytiskne. Pamatujte, že to bude fungovat pro více shod na rozdíl od grep řešení, které poskytuje pouze první shodu.


Pokud jste vázáni na grep pak byste mohli udržovat víceřádkové shody ...

soubor:

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

Pomocí

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

Pokud můžete použít sed pak je zde odpověď v U&L, kterou jsem níže plagioval

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

Linux
  1. Jak pomocí rekurzivního Grepu vyloučit konkrétní řádek s „nechtěným“ a „chtěným“ slovem v něm?

  2. Jak používat příkaz Wireshark tshark pro vlastní porty a textové soubory

  3. Jak hledat přesné slovo, pokud má řetězec v sobě tečku

  1. Jak používám Ansible a anacron pro automatizaci

  2. Jak používat příkaz Grep k vyhledání textu v souborech

  3. Jak hledat slovo v celém obsahu adresáře v linuxu

  1. Linux – Jak šáhnout po konkrétním slovu a uchopit text?

  2. Jak zkopírovat a vložit v Putty

  3. Jak najít konkrétní text pomocí GREP v systému Linux