【发布时间】:2013-05-20 13:14:47
【问题描述】:
您好,我有一行要解析。这条线是这样的
Edward C. Anderson,经纪人 ~ 813.841.2773 ~ ed@action100realty.com
我是 awk 的新手,并已尝试进行研究。我看到您可以使用 sub() 和 gsub 来执行此操作。我正在尝试将这三条信息放入我的姓名电话和电子邮件输出中。我在想我可以使用正则表达式从 ~ 之前和之间和结尾处获取内容,但不确定。
【问题讨论】:
您好,我有一行要解析。这条线是这样的
Edward C. Anderson,经纪人 ~ 813.841.2773 ~ ed@action100realty.com
我是 awk 的新手,并已尝试进行研究。我看到您可以使用 sub() 和 gsub 来执行此操作。我正在尝试将这三条信息放入我的姓名电话和电子邮件输出中。我在想我可以使用正则表达式从 ~ 之前和之间和结尾处获取内容,但不确定。
【问题讨论】:
计划 ol' bash:
echo "Edward C. Anderson, Broker ~ 813.841.2773 ~ ed@action100realty.com" |
while IFS='~' read -r name phone email; do
echo "name is $name, phone is $phone and email is $email"
done
【讨论】:
使用awk 的-F 开关,例如。获取名称(第一位置):
echo "Edward C. Anderson, Broker ~ 813.841.2773 ~ ed@action100realty.com" |
awk -F'~' '{print $1}'
【讨论】:
echo "Edward C. Anderson, Broker ~ 813.841.2773 ~ ed@action100realty.com" | awk -F'[~,]' '{print $1,$3,$4}'
Edward C. Anderson 813.841.2773 ed@action100realty.com
【讨论】: