GNU/Linux >> Belajar Linux >  >> Linux

Cara menangkap kata tertentu dan mengambil teks

Anda bisa menggunakan -B1 untuk mencetak baris sebelumnya juga dan kemudian hanya mengambil baris pertama:

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

Atau, lakukan dengan awk :

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

Ini p terus menyimpan baris terakhir. Ketika baris input berisi Minion , lalu dicetak. Perhatikan bahwa ini akan bekerja untuk beberapa kecocokan tidak seperti grep solusi di atas yang hanya memberikan kecocokan pertama.


Jika Anda terikat dengan grep maka Anda dapat mempertahankan kecocokan multi-baris ...

berkas:

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

Menggunakan

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

Jika Anda dapat menggunakan sed lalu ada jawaban di sini di U&L yang telah saya jiplak di bawah

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

Linux
  1. Bagaimana saya menggunakan Ansible dan anacron untuk otomatisasi

  2. Menggunakan Grep –recursive, Bagaimana Cara Mengecualikan Baris Tertentu Dengan Kata 'tidak diinginkan' Dan 'diinginkan' Di dalamnya?

  3. Cara menyalin dan menempel di Putty

  1. Cara menggunakan Perintah tshark Wireshark untuk Port Kustom dan File Teks

  2. Bagaimana cara menemukan semua file yang berisi teks tertentu di Linux?

  3. Bagaimana cara Menggabungkan find dan grep untuk pencarian yang kompleks? ( GNU/linux, temukan, grep )

  1. Linux – Bagaimana Cara Mendapatkan Kata Tertentu Dan Mengambil Teks?

  2. Cara Menemukan Teks Tertentu menggunakan GREP di Linux

  3. Cara mencari kata di seluruh isi direktori di linux