|
|||||||||||||||||||||||||||
torben fjerdingstad <sslug@sslug> writes:
> Sample input:
> Return-Path: <sslug@sslug>
> Output:
> sslug@sslug
Det kan man klare med denne 1-linjers (brudt i 2 da den er lidt >80 tegn):
perl -wne \
'/^Return-Path: <(\S+-)return-\d+(-\S+)>/i && print "$1unsubscribe$2\n"'
Inputtet giver du enten på stdin eller på kommandolinjen, ligesom med dit
eget 15-16-linjers-script. Manualsider:
`-n' : perlrun(1) (lav `while(<>){...}'-logik
`\S' og `\d' : perlre(1) (matcher ikke-whitespace hhv. cifre)
`$1' og `$2' : perlre(1) (det som 1. hhv. 2. parentes-par matchede)
Hvis du vil være sikker på at Perl-kommandoen kun svarer med 1 adresse
(dvs. exit'er så snart den har fundet det første match), og du også gerne vil
have det som et lidt pænere script, så prøv i stedet
#! /usr/bin/perl -wn
if (/^Return-Path: <(\S+)-return-\d+-(\S+)>/i) {
print("$1-unsubscribe-$2\n");
exit 0;
}
--
Ulrik Dickow, Systemprogrammør Kampsax Technology
Tlf: +45 36 39 08 00 Stamholmen 112
Fax: +45 36 77 03 01 DK-2650 Hvidovre
WWW: http://www.kampsax.dk/technology/ Danmark
|
||||||||||||||
|
||||||||||||||