我想找到一种方法来获取内部.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
标志 togrep
仅获取该行的匹配部分:
find . '(' -iname "*.rb" -o -iname "*.yml" ')' -exec grep -o -E 'ENV\[.(.*).\]' {} + | sort -u | cut -d'[' -f 2 | tr -d "']"
另外,我强烈建议使用-exec
标志 tofind
而不是管道 to xargs
: