Ниже приведен фрагмент файла с именем "books.info":
TITLE and AUTHOR ETEXT NO.
Aspects of plant life; with special reference to the British flora, 56900
by Robert Lloyd Praeger
The Vicar of Morwenstow, by Sabine Baring-Gould 56899
[Subtitle: Being a Life of Robert Stephen Hawker, M.A.]
Raamatun tutkisteluja IV, mennessä Charles T. Russell 56898
[Subtitle: Harmagedonin taistelu]
[Language: Finnish]
Tom Thatcher's Fortune, by Horatio Alger, Jr. 56896
A Yankee Flier in the Far East, by Al Avery 56895
and George Rutherford Montgomery
[Illustrator: Paul Laune]
Nancy Brandon's Mystery, by Lillian Garis 56894
The Junior Classics, Volume 3: Tales from Greece and Rome, by Various 56887
~ ~ ~ ~ Posting Dates for the below eBooks: 1 Mar 2018 to 31 Mar 2018 ~ ~ ~ ~
TITLE and AUTHOR ETEXT NO.
The American Missionary, Volume 41, No. 1, January, 1887, by Various 56886
Morganin miljoonat, mennessä Sven Elvestad 56885
[Author a.k.a. Stein Riverton]
[Subtitle: Salapoliisiromaani]
[Language: Finnish]
"Trip to the Sunny South" in March, 1885, by L. S. D 56884
Balaam and His Master, by Joel Chandler Harris 56883
[Subtitle: and Other Sketches and Stories]
Я пытаюсь получить полную информацию о книге, если я ищу ее по имени автора.
Пример 1:
Поиск по ключевому слову: Al Avery
Тогда возврат должен быть:
A Yankee Flier in the Far East, by Al Avery 56895
and George Rutherford Montgomery
[Illustrator: Paul Laune]
Пример 2:
Поиск по ключевому слову: Роберт Ллойд Прегер
Тогда возврат должен быть:
Aspects of plant life; with special reference to the British flora, 56900
by Robert Lloyd Praeger
Я пробовал это:
#!/bin/bash
if [ -f books.info ]
then
echo Please enter search keyword:
read keyword
command=$(grep -i "$keyword" books.info)
echo $command
else
echo books.info file is missing
fi
Но это не работает именно так, как я хочу. Может ли кто-нибудь помочь мне с этим?
EDIT
Обновлена структура файла после обнаружения строки даты.
Пытался:
awk -v RS = '\ n \ n' "/ $ {ключевое слово} /" infile
а также:
awk -v RS = -v ключевое слово = "$ ключевое слово" '$ 0 ~ ключевое слово' file.txt
Как следует из ответов, приведенных ниже @andlrc и @ αғsнιη, но он печатает много других материалов, которые не связаны между собой. Мое лучшее предположение, что эта строка ломает это:
~ ~ ~ ~ Posting Dates for the below eBooks: 1 Mar 2018 to 31 Mar 2018 ~ ~ ~ ~
Поскольку верхняя часть этой строки имеет 2 пробела и ниже одного пробела, я думаю, что из-за двух верхних пробелов она не работает должным образом.