指定された入力に対して.txtファイルを検索し、見つかった場合は行全体を印刷します。

指定された入力に対して.txtファイルを検索し、見つかった場合は行全体を印刷します。

入力ファイル私の.txtファイルには次の内容が含まれています。

Tom Thatcher's Fortune, by Horatio Alger, Jr.                   56896
Paradise Lost, by John Milton                                      20

最初の文字列は本のタイトル、2番目の文字列は著者、最後の文字列は本の番号です。誰かが本番号を検索した場合(本番号が一致する場合)、行全体を印刷したいと思います。私は初めてbashスクリプトに触れました。

ベストアンサー1

それはまるで

grep BOOKNUMBER textfile.txt

この問題は解決する必要があります。

The Fortunes of Tom Thatcherもリストされている96冊を検索したくない場合は、以下を使用してください。

grep '[[:space:]]BOOKNUMBER[[:space:]]*$' textfile.txt

代わりに。


スクリプトとして(別名で保存searchbook

#!/bin/bash

BOOKFILE=/path/to/bookfile.txt

BOOK=$1
if [[ -z "$BOOK" ]]; then 
    echo -n "Booknumber? "
    read BOOK
fi

grep '[[:space:]]'$BOOK'[[:space:]]*$' $BOOKFILE

だからあなたは実行することができます

searchbook BOOKNUMBER

または

searchbook

2番目のケースでは、数字を入力するように求められます。

おすすめ記事