file.txt
含む:
aa=testing
sss=whoiam
bbb=findme
テストを検索して印刷するには、どのコマンドを使用しますか?
予想される結果:
# you search testing
答え1
あなたが使用できるgrep
:
string=testing && grep "$string" file.txt 2>&1 >/dev/null && echo "you search $string"
ファイルのどこかに「testing」という文字列が見つかると、「you search Testing」という文字列が印刷されますfile.txt
。
string=testing
:変数設定$string
grep "$string" file.txt 2>&1
>/dev/null:grep
ファイルからこの文字列を検索します。 (stdin
およびstderr
)はすべてにリダイレクトされるため、これらの出力は望ましくありません/dev/null
。echo "you search $string"
:すべてが成功した場合、文字列を印刷します。
パターンの変数を変更するだけです$string
。
追加の質問:
aa値を取得するにはどうすればよいですか?
このオネライナーでは、aa値も検索されます。 file.txt ファイルの内容全体が消えました。
私の参照がaaで、その値(テスト)ではないという意味ですか?
これを使用してください:
string=aa && grep "^$string=" file.txt | awk -F= '{printf "you search %s\n", $2}'
変数名でaaを検索し、値を印刷します。出力は次のとおりです。
you search testing