Bash 在多个文件中查找特定模式

Bash 在多个文件中查找特定模式,bash,shell,unix,grep,Bash,Shell,Unix,Grep,我正在用PHP开发Symfony2,我想在不同的twig视图中找到所有翻译键,以便在消息文件中轻松列出它们 基本上,在my twig模板中,经过翻译的键/文本如下所示: {{ "my text" | trans }} or {{ "my_key" | trans }} or {{"my_key"|trans}} or {{"my text"|trans}} 我想运行一个.sh脚本,它可以列出所有这些键/文本,以便在我的不同模板文件中进行翻译 在另一个项目中,我必须识别类似lang(“MY_KE

我正在用PHP开发Symfony2,我想在不同的twig视图中找到所有翻译键,以便在消息文件中轻松列出它们

基本上,在my twig模板中,经过翻译的键/文本如下所示:

{{ "my text" | trans }} or {{ "my_key" | trans }} or {{"my_key"|trans}} or {{"my text"|trans}}
我想运行一个.sh脚本,它可以列出所有这些键/文本,以便在我的不同模板文件中进行翻译

在另一个项目中,我必须识别类似lang(“MY_KEY”)的东西,一个非常有效的命令如下:

find . -type f -name '*.php' -execdir egrep -o -- "->lang\('[^']*" {} \; | sed -e "s/^.*->lang('//g"
也许有了这个基础,我怎么能轻易地在我的文件中找到不同的翻译


谢谢你的帮助

我会建议一些类似于
find的东西-键入f-name'*.php'| xargs egrep-Ho'\{{[^[124;]*\\\[^}]*\}'
。这将允许您查找特定文件中出现的密钥/文本对。一旦你有了这个列表,你可以进一步处理它,如果你想规范化使用,并以某种方式匹配,例如
{“我的文本”| trans}}
{“我的键”| trans}
作为同一个键的不同使用(我不知道symphony,所以我不知道这是否真的是等效的,也不知道这种键的“折叠”是否有意义)。

我建议使用
find.-typef-name'*.php'| xargs egrep-Ho'\{{[^ 124;]*\\\\[^}]*\}\}“
。这将允许您查找特定文件中出现的密钥/文本对。一旦获得此列表,您可以进一步处理它,如果您希望,例如,规范化使用并以某种方式匹配,例如,
{“我的文本”| trans}
{“我的密钥”| trans}
作为同一密钥的不同使用(我不知道symphony,所以我不知道这是否真的是等效的,也不知道这样的键“折叠”是否有意义)。

耶,看起来不错!我怎么能只获取{{}内容,获取文件并不重要,并迫使我做更多的处理:)thx!很好,我已经找到了,使用我以前的命令和你的rightfull模式。thx dude!哼,现在使用我的命令:find src/-type f-name'*.twig'-execdir egrep-o--“{{{[^^(){]*\[(trans)^}]*}{{sed's/([a-z]*])./\1/'我在trans trans trans trans trans 124}或{trans 124}我的另一个trans.thx!试着通过
egrep-o'[^“]+“|”“[^']+'”[124^']+“| sed-r's@^.(.........$@\1@'
(注意引号的嵌套,这很棘手)耶,看起来不错!我怎么能只获取{}内容,获取文件其实并不重要,并迫使我做更多的处理:)thx!很好,我已经找到了,使用我以前的命令和你的rightfull模式。thx dude!哼,现在使用我的命令:find src/-type f-name'*.twig'-execdir egrep-o--“{{{[^^(){]*\[(trans)^}]*}{{sed's/([a-z]*])./\1/'我在trans trans trans trans trans 124}或{trans 124}我的另一个trans。如何只获取索引“”或“”中的内容?thx!尝试通过
egrep-o'[^“]+“|”'[^']+''.[^']+'.\sed-r's@^。(.........$@\1@'
(注意引号的嵌套,这很棘手)