regex
2010-08-17 50 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:被捕獲的組

注: ' - ' 和 '*' 被轉義。

相關問題