这是包含 3 个句子的文件 strings.xml:
1.string name="schedulelist_nofiles">不存在注册议程!保佑,
这里缺少 tecla “Add” (Adicionar) para adicionar uma 行。细绳
2.你应该跳过这行!
3.string name="Programme_name">GUIA DE PROGRAMA字符串
我使用 cat 命令'cat strings.xml | grep "string name=" 但它只得到以下行:
string name="schedulelist_nofiles">不存在注册议程!保佑,
string name="Programme_name">GUIA DE PROGRAMA 字符串
我想得到这样的完整行,就像第 3 句一样,以“字符串名称”开头,以“字符串”结尾。我能为此做些什么?
与
pcregrep
:-M
:多行模式,pcgrep 根据需要从输入中提取更多行以满足正则表达式-o
:打印与 GNU 中的正则表达式匹配的部分(如果正则表达式匹配整行grep
,您可以省略它或替换为。-x
(?s)
:激活s
导致.
在换行符上也匹配的标志.*?
: non-greedy version of.*
: 任意数量的字符,尽可能少。\b
: 字边界。如果你没有
pcregrep
,你可以用类似的东西做同样的perl
事情:虽然这意味着将整个文件加载到内存中。
使用
sed
,假设这些string name= ... string
占满行并且所有string name=
s 都由 a 终止string
:下面可以使用 sed oneliner 来实现相同的效果。测试它工作正常
第一种方法1
在method1中,它将搜索以“string name”开头并以“string”结尾的行
方法二
在方法 2 中,首先它会搜索以“字符串名称”开头的行,然后搜索以字符串结尾的行
输出