Penggunaan lanjutan pdfgrep

0

Saya butuh bantuan untuk menyelesaikan suatu situasi. Tampaknya agak sederhana, tapi kurasa tidak.

#!/bin/bash

pdfgrep -Hn $1 *.pdf

exit 0

Jika saya menjalankan kode ini di direktori mana pun yang berisi file PDF ocr'd itu akan mengeluarkan "file yang cocok + nomor halaman dalam file itu + baris yang cocok untuk pola $ 1".

Sekarang untuk masalah. Katakanlah saya ingin melakukan hal yang sama dengan 2 pola "$ 1" dan "$ 2". Ini tidak akan semudah itu

pdfgrep -Hn $1 | pdfgrep -Hn $2 *.pdf

Bagaimana ini bisa dilakukan, sehingga hasilnya akan menjadi "file yang cocok + nomor halaman dalam file yang mengandung kedua pola $ 1 dan $ 2"?

Setiap bantuan dihargai :-)

Terima kasih!

/ Paul

Paul Bergström
sumber

Jawaban:

0

Saya menemukan solusi yang cukup sederhana:

#!/bin/bash

pdfgrep -Hn $1 *.pdf | cut -f1,2 -d':' > /tmp/sok1.tmp
pdfgrep -Hn $2 *.pdf | cut -f1,2 -d':' > /tmp/sok2.tmp
comm -1 -2 --nocheck-order /tmp/sok1.tmp /tmp/sok2.tmp

exit 0

/ Paul

Paul Bergström
sumber
Koreksi: "comm -2 --nocheck-order /tmp/sok1.tmp /tmp/sok2.tmp"
Paul Bergström
Koreksi2: Untuk beberapa alasan "comm" ini tidak konsisten. Jadi saya mengubah baris terakhir menjadi: "grep -f /tmp/sok1.tmp /tmp/sok2.tmp" dan berhasil !!!
Paul Bergström