コマンド置換の使用時の予期しない grep 動作

コマンド置換の使用時の予期しない grep 動作

grepbase64でエンコードされた文字列を含むすべてのファイルを見つけて印刷するためにコマンド置換を使用しようとしています。

まず、文字列をbase64でエンコードしてから、grepを使用してファイルを見つけることができます。

$ echo "FLAG" | base64
RkxBRwo=

$ grep -nr "Rkx"
test.txt:1:RkxBR3tUaGl6STVUaDNGbDRnfQo=

ただし、コマンド置換を使用すると、どの出力も得られません。

$ grep -nr `echo "FLAG" | base64`

ベストアンサー1

Steeldriverが回答をコメントとして投稿したので、回答として投稿します。  echo "FLAG" | base64 出力RkxBRwo=、だからあなたの

grep -nr `echo "FLAG" |マウサーgrep -nr `echo "FLAG" grep -nr `echo "FLAG" base64`
コマンドが実行されています
grep -nr RkxBRwo=
ただし、表示される内容によると、ファイルには;がtest.txt含まれていません(後に他の文字が表示されます)。RkxBRwo=RkxBR

ファイルからbase64エンコーディングの最初の5文字を​​取得するには、FLAG次の手順を実行します。

grep -nr `echo "FLAG" |マウサーgrep -nr `echo "FLAG" |マウサーgrep -nr `echo "FLAG" 64ビット|cut-c1-5`

おすすめ記事