.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