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

时间:2012-02-27 21:54:06

标签: bash shell unix grep

我正在使用PHP开发Symfony2,我想在不同的视图中查找所有翻译密钥,以便在我的消息文件中轻松列出。

基本上,在我的树枝模板中,翻译的键/文字如下所示:

{{ "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"

也许使用相同的基础,我怎样才能在文件中轻松找到不同的翻译?

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

我会根据find . -type f -name '*.php' | xargs egrep -Ho '\{\{[^|]*\|[^}]*\}\}'提出建议。这将允许您查找特定文件中键/文本对的出现。获得此列表后,如果您愿意,可以进一步处理该列表。规范化用途并以某种方式匹配,例如{{ "my text" | trans }}{{ "my_key" | trans }}一起作为同一个键的不同用法(我不知道交响乐,所以我不知道这是否真的相同或者如果这样'折叠'的键是有意义的)。