我的测试文件有如下文本:
> cat test.txt
new dummy("test1", random1).foo("bar1");
new dummy("
test2", random2);
new dummy("test3", random3).foo("bar3");
new dummy = dummy(
"test4", random4).foo("bar4");
我正在try 匹配以分号(;)结尾的所有单行还有文本"dummy(".然后我需要提取dummy中双引号中的字符串.我想出了以下命令,但它只匹配第一个和第三个语句.
> perl -ne 'print if /dummy/ .. /;/' test.txt | grep -oP 'dummy\((.|\n)*,'
dummy("test1",
dummy("test3",
使用-o标志,我希望在dummy中的双引号之间提取字符串.但这也不起作用.你能告诉我怎么做吗?
预期输出为:
test1
test2
test3
test4
下面的一些答案适用于基本的文件 struct .如果行包含超过1个新行字符,则代码中断.e、 g.输入包含更多新行字符的文本文件:
new dummy("test1", random1).foo("bar1");
new dummy("
test2", random2);
new dummy("test3", random3).foo("bar3");
new dummy = dummy(
"test4", random4).foo("bar4");
new dummy("test5",
random5).foo("bar5");
new dummy("test6", random6).foo(
"bar6");
new dummy("test7", random7).foo("
bar7");
我提到了以下几个链接: