ディレクトリツリーの.rbファイルと.ymlファイルからすべてのENVキーを取得する方法は?

ディレクトリツリーの.rbファイルと.ymlファイルからすべてのENVキーを取得する方法は?

.rb内部的に、またはファイルで.yml使用される一意のキーを取得する方法を探したいと思います。このキーはハッシュによって内部的に使用されますENV。したがって、一部のファイルには次の内容が含まれています。

ENV['key']

複数のラインにまたがって、ライン内のさまざまな場所にあります。また、これらの行に複数回表示されることもあります。

したがって、ファイルがある場合:

blah blah blah ENV['key1'] blah blah blah ENV['key2']
blah blah blah ENV['key2']
blah blah
ENV['key3'] blah blah ENV['key2']

その後、リストを取得したいと思います。

key1
key2
key3

私はこれをしました:

find . -iname "*.rb" -o -iname "*.yml" | xargs egrep 'ENV\[.(.*).\]'

しかし、実際に鍵を取得する方法がわかりません。

どんな助けでも大変感謝します。

ベストアンサー1

-oフラグを使用してgrep行の一致部分のみを取得します。

find . '(' -iname "*.rb" -o -iname "*.yml" ')' -exec grep -o -E 'ENV\[.(.*).\]' {} + | sort -u | cut -d'[' -f 2 | tr -d "']"

また、パイプの代わりに-execフラグを使用して次のことをお勧めします。findxargs

おすすめ記事