|
| awk - extract af tmda key ?? Fra : Brian Ipsen |
Dato : 20-06-02 18:50 |
|
Hej!
Jeg forsøger i et script at trække en streng ud med nøglen fra
tmda-keygen....
/home/vpopmail/tmda-0.57/bin/tmda-keygen | awk '{getline;getline
;print substr($0,0,40);'
giver mig dog
f2e168e28923fa5c9270e8b9f8c1f3ae241104a0
and make sure to keep your key secret! (
Hvorfor kommer "and ..." med ?? - Jeg havde forventet kun at få
"f2e168e28923fa5c9270e8b9f8c1f3ae241104a0" tilbage ...
Et normalt output fra tmda-keygen giver:
Generating a unique, 160-bit private key, please wait a moment..
f2e168e28923fa5c9270e8b9f8c1f3ae241104a0
Now paste the above key into ~/.tmda/crypt_key
and make sure to keep your key secret! (chmod 600 ~/.tmda/crypt_key)
Jeg tror problemet muligvis bunder i at der nogle steder i outputtet
anvendes både CR+LF - og andre steder kun LF
/Brian
| |
Claus Rasmussen (20-06-2002)
| Kommentar Fra : Claus Rasmussen |
Dato : 20-06-02 19:06 |
|
Brian Ipsen wrote:
> Jeg forsøger i et script at trække en streng ud med nøglen fra
> tmda-keygen....
Prøv med sed i stedet:
/.../tmda-keygen | sed -n 3p
3-tallet er linienummeret. Juster selv.
-Claus
| |
frank damgaard (20-06-2002)
| Kommentar Fra : frank damgaard |
Dato : 20-06-02 20:39 |
|
Brian Ipsen <spammers@nowhere.net> wrote:
> Jeg forsøger i et script at trække en streng ud med nøglen fra
> tmda-keygen....
> /home/vpopmail/tmda-0.57/bin/tmda-keygen | awk '{getline;getline
> ;print substr($0,0,40);'
> giver mig dog
> f2e168e28923fa5c9270e8b9f8c1f3ae241104a0
> and make sure to keep your key secret! (
......
getline bruges normalt ikke, hvis du blot vil overspringe 2 linier:
awk ' NR>2 { print substr($0,0,40);}'
Hvis du yderligere ved noget om de linier du vil have pillet ud,
så kunne du bruge en regular expression:
gawk --posix ' /^[0-9a-f]{6}/ && NR>2 { print substr($0,0,40);}'
i stedet for {6} kunne det øges til længden, men 6 burde
være nok til at skelne fra tekstlinierne.
> Jeg tror problemet muligvis bunder i at der nogle steder i outputtet
> anvendes både CR+LF - og andre steder kun LF
kunne også være et problem, men dit script vil under alle omstændigheder
liste alle linier efter de 2 første (hvis du ikke får fejl først).
Hvis din version af awk ikke klarer CR/LF så kan man ofte forsøge
med at sætte RS passende: ... 'BEGIN { RS="\r\n|\n" } /...../ {.....} '
--
Frank Damgaard |
| |
|
|