Re: AWK (kanske) fråga

Mattias Pantzare pantzer at ludd.ltu.se
Fri May 25 12:28:23 CEST 2018


Kom ihåg att testa med någon med åä eller ö i namnet. Strängar som
innehåller sånt blir base64-kodade om filen följer standarden.

On Fri, May 25, 2018 at 9:30 AM Leif Larsson via BUS <bus at stacken.kth.se>
wrote:

> Man får verkligen inspiration och ideer, det är exakt såhär jag höll på
> att traggla men nådde inte riktigt fram.
>
> Känns som när man kikade i facit lite för tidigt i skolan.
>
> On 05/24/2018 10:14 PM, Anders Magnusson via BUS wrote:
> > Min personliga variant av det här (som jag använt en miljon gånger
> > ungefär) vore nog:
> >
> > /^givenName:/{gn=$2;}
> > /^mail:/{mail=$2;}
> > /^sn:/{sn=$2;}
> > /^uid:/{system("samba-tool user add " $2 " --surname=" sn "
> > --given-name=" gn " --mail-address=" mail);}
> >
> > -- Ragge
> >
> > Den 2018-05-24 kl. 18:10, skrev Daniel Lublin via BUS:
> >> OK, awk, om du säger det så! Det är ju förvisso trevligt för lite
> >> text-processande, och har väldigt få beroenden.
> >>
> >> Här är en liten ansats, med föga felhantering, och som förutsätter att
> >> dataformatet du beskriver följs hårt. Särskilt att poster separeras
> >> med en
> >> eller flera tomma rader (RS=""). Man kan ju både tänka sig att man låter
> >> awk-scriptet spotta ur sig skal-kommandon till en fil (som sedan
> >> sourcas),
> >> alternativt kör man system() direkt i awk.
> >>
> >> #!/usr/bin/awk -f
> >>
> >> BEGIN { RS=""; FS="\n" }
> >>
> >> function strip(s) {
> >>    sub(/^[[:space:]]+/, "", s)
> >>    sub(/[[:space:]]+$/, "", s)
> >>    return s
> >> }
> >>
> >> {
> >>    delete rec
> >>    for (i = 1; i <= NF; i++) {
> >>      sep = index($i, ":")
> >>      if (sep) {
> >>        k = substr($i, 0, sep-1)
> >>        rec[k] = strip(substr($i, sep+1))
> >>      }
> >>    }
> >>    printf("samba-tool user add '%s' --surname='%s'" \
> >>           " --given-name='%s' --mail-address='%s'\n",
> >>           rec["uid"], rec["sn"], rec["givenName"], rec["mail"])
> >> }
> >> _________________________________________________
> >> BSD Users Sweden -- BUS at stacken.kth.se
> >> https://lists.stacken.kth.se/mailman/listinfo/bus
> >
> > _________________________________________________
> > BSD Users Sweden -- BUS at stacken.kth.se
> > https://lists.stacken.kth.se/mailman/listinfo/bus
> _________________________________________________
> BSD Users Sweden -- BUS at stacken.kth.se
> https://lists.stacken.kth.se/mailman/listinfo/bus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.stacken.kth.se/pipermail/bus/attachments/20180525/971fd876/attachment.html>


More information about the BUS mailing list