Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 使用tsch从文本文件中分离电子邮件地址_Unix_Email Validation_Tcsh - Fatal编程技术网

Unix 使用tsch从文本文件中分离电子邮件地址

Unix 使用tsch从文本文件中分离电子邮件地址,unix,email-validation,tcsh,Unix,Email Validation,Tcsh,我有一个文本文件,其中包含被大量垃圾包围的电子邮件地址。 我只需要将电子邮件地址分开,并将每个地址写在单独的行中(或用逗号分隔) 文本文件如下所示: per@netvision.net אירית שנהב;רוני אשכול 99; מרכז האולפן 99; דפני אלפר; תים רון; (eina@gmail.com) אינה דגן 9303; (ori@gmail.com) אילן דור 9406; 9304אורי 我想“抓住”所有以[A-Z]开头和[A-Z]结

我有一个文本文件,其中包含被大量垃圾包围的电子邮件地址。 我只需要将电子邮件地址分开,并将每个地址写在单独的行中(或用逗号分隔)

文本文件如下所示:

per@netvision.net אירית שנהב;רוני אשכול 99; מרכז האולפן 99; דפני אלפר; תים רון; (eina@gmail.com) אינה דגן 9303; (ori@gmail.com) אילן דור 9406; 9304אורי

我想“抓住”所有以[A-Z]开头和[A-Z]结尾的单词,因为所有的垃圾都不是英语中的字母([A-Z])

有人能告诉我怎么写这个脚本吗?

我会用。它不完全是“in”tcsh,但您可以从任何脚本使用grep。
-o
选项使grep只返回与regexp匹配的文本

看起来您的输入文件当前使用分号分隔记录。这很重要,因为
grep
逐行读取内容。因此,我们将使用
tr
用换行符替换您的记录分隔符,以确保
grep
可以看到每条记录

ghoti@pc> cat strip_email 
#!/bin/tcsh

setenv inputfile emails.txt
setenv re_email '[[:alnum:]][[:alnum:]_%=+-]*@([[:alnum:]]([[:alnum:]-])+\.)+[[:alnum:]]{2,}'

tr ';' '\n' < $inputfile | grep -Eo "$re_email"

ghoti@pc> ./strip_email 
per@netvision.net
eina@gmail.com
ori@gmail.com
ghoti@pc> 
ghoti@pc>cat strip_电子邮件
#!/垃圾箱/垃圾箱
setenv inputfile emails.txt
setenv re_email'[[:alnum:][][:alnum:][+-]*@([:alnum:][]([:alnum:][-])+\]+[:alnum:][2,}'
tr';''\n'<$inputfile | grep-Eo“$re_电子邮件”
ghoti@pc>电子邮件
per@netvision.net
eina@gmail.com
ori@gmail.com
ghoti@pc> 

您可以根据自己的需要调整正则表达式。在unix或linux系统上,您可以查看手册页:或文档。
[:alnum:][/code>片段在这里有文档记录,对于
setenv re_email.

+1,尤其是使用posix和独立字符的混合字符类@米诺巴卢鲁-很棒的东西。也许还有一个复选标记?(在答案的左边。)