我需要解析目录及其子目录中所有.m文件的[POEditor localizedStringWithKey:
或[POEditor localizedStringWithKey:[NSString stringWithFormat:
,然后我需要在NSString
之间获取"
。
例如:
第一个选项:[POEditor localizedStringWithKey:@"I need this string"];
第二个选项[POEditor localizedStringWithKey:[NSString stringWithFormat:@"I need this string with formate %@", [self someFormatedString]]];
有没有人知道如何解决这个问题?
谢谢大卫
答案 0 :(得分:1)
我不太确定你想要什么,但看起来这可能是一个很好的起点:
find . -name \*.m -exec grep "\[POEditor localizedStringWithKey:" {} \; | awk -F\" '{print $2}'
用于查找当前目录及以下名称以.m
结尾的所有文件,以及包含" POEditor"的行的grep。你想要的字符串。将所有结果传递到awk
并使用"
作为字段分隔符,并打印每行的字段2。
如果您的grep
支持-R
(递归搜索)选项,那么您可以使用此功能:
grep -R "\[POEditor localizedStringWithKey:" *.m */*.m | awk -F\" '{print $2}'
如果希望结果在bash
数组中,则需要将数组的内容初始化为命令的输出,如下所示:
array=( $(command) )
所以你会使用:
array=($(grep -R "\[POEditor localizedStringWithKey:" *.m */*.m | awk -F\" '{print $2}'))
但是这将拆分空格上的数组元素,而$ {array [0]}将是"我"来自"我需要这个",所以你想在线端分割数组元素,如下所示:
IFS=$'\n' array=($(grep -R "\[POEditor localizedStringWithKey:" *.m */*.m | awk -F\" '{print $2}'))
或同样
IFS=$'\n' array=($(find . -name \*.m -exec grep "\[POEditor localizedStringWithKey:" {} \; | awk -F\" '{print $2}'))
然后你可以像这样访问数组元素:
echo ${array[0]}
I need this string