我正在寻找命令sed
它转换这个输入流:
dummy
(key1)
(key2)dummy(key3)
dummy(key4)dummy
dummy(key5)dummy))))dummy
dummy(key6)dummy))(key7)dummy))))
进入这个:
key1
key2
key3
key4
key5
key6
key7
where dummy
可以是任何不带括号的字符串。所以我基本上想提取括号之间的字符串并每行输出一个字符串。可以有额外的右括号)
.
我进行了很多测试sed
使用正则表达式,但我不明白
如何解决这个问题呢。尽管我确信这是可能的。
(我对 Perl 或 Python 等替代工具持开放态度)
编辑:括号之间的字符串 (key1, key2 .. key7) 可以是任何不带括号的字符串。
我会做的:
my @all_keys;
while ( <DATA> ) {
push ( @all_keys, m/\((.+?)\)/g );
}
print join ("\n",@all_keys);
__DATA__
dummy
(key1)
(key2)dummy(key3)
dummy(key4)dummy
dummy(key5)dummy))))dummy
dummy(key6)dummy))(key7)dummy))))
假设“键”与\w
in perlre(字母数字加上“ _”,)
(如果您不熟悉Perl,您几乎可以交换<DATA>
for <STDIN>
并将数据直接输送到您的脚本 - 或用@all_keys
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)