regex
2010-08-17 44 views 2 likes 
2

除了使用正则表达式删除重复的单词,我该如何复制单词?我的情况:我有一个需要转向SQL查询的电子邮件列表。如何使用正则表达式添加重复的单词?

[email protected] 
[email protected] 
[email protected] 

要:

mysql -e "select * from users where email='[email protected]" > /tmp/[email protected] 
mysql -e "select * from users where email='[email protected]" > /tmp/[email protected] 
mysql -e "select * from users where email='[email protected]" > /tmp/[email protected] 

那么,如何复制在每一行的电子邮件?

注意:每个查询都会返回多个行,这就是为什么我要单独执行每个查询。

回答

0

你并不需要一个正则表达式

psedocode:

for each line 
    set email = line // line should be trimmed of newlines 
    append 'mysql -e "select * from users where email=\'$email\' > /tmp/$email.xls"' to filename 
end 
2
s/(.*)/mysql -e "select * from users where email='\1' > /tmp/\1.xls/ 
+0

+1美味的Perl/sed .... – 2010-08-17 06:33:45

+0

可以请你举个例子\ 1如何替换电子邮件地址? – 2010-08-17 06:36:29

0

查找模式:

(.+) 

替换模式:

mysql \-e "select \* from users where email='$1" \> /tmp/$1\.xls\r\n 

工作原理: (+):捕捉到线路,直到其结束(换行符之前) $ 1:被捕获的组

注: ' - ' 和 '*' 被转义。

相关问题