.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
フラグを使用して次のことをお勧めします。find
xargs