如何使用正则表达式添加重复的单词?

时间:2010-08-17 06:29:36

标签: regex

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

buddy@gmail.com
melinda@yahoo.co.uk
terrence12@gmail.com

要:

mysql -e "select * from users where email='buddy@gmail.com" > /tmp/buddy@gmail.com.xls
mysql -e "select * from users where email='melinda@yahoo.co.uk" > /tmp/melinda@yahoo.co.uk.xls
mysql -e "select * from users where email='terrence12@gmail.com" > /tmp/terrence12@gmail.com.xls

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

注意:每个查询都会返回多行,这就是我单独执行每个查询的原因。

3 个答案:

答案 0 :(得分:2)

s/(.*)/mysql -e "select * from users where email='\1' > /tmp/\1.xls/

答案 1 :(得分:1)

查找模式:

(.+)

替换模式:

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

工作原理: (。+):捕获一行直到结束(换行符之前) $ 1:是被捕获的组

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

答案 2 :(得分: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