bashでこの文字列を取得できるコマンドは何ですか?

bashでこの文字列を取得できるコマンドは何ですか?

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

関連情報