Re: awk/shell-Rätsel

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Wed, 14 Jan 2009 12:17:48 +0100 (CET)

Marc Santhoff wrote:
> Oliver Fromme wrote:
> > Falls das Shellskript außer dem awk-Kommando nichts weiter
> > enthält, dann brauchst Du gar keine /bin/sh, sondern
> > kannst es direkt als awk-Skript schreiben, womit Du die
> > Quoting-Problematik der Shell ganz vermeidest:
> > [...]
>
> Stimmt, ich kann aber nicht ausschließen, daß später noch anderes nötig
> wird.

Man kann vieles in awk machen. ;-) Und im Notfall kann
man aus awk heraus auch Shell-Kommandos ausführen:
system("mv foo bar")

Natürlich hängt es vom Einzelfall ab, ob es sinnvoll ist,
das ganze als Shell-Skript zu schreiben oder nicht.
Ich wollte nur auf die Möglichkeit hinweisen.

> > (Den Geschwindigkeitsvergleich habe ich mit einer 25MB-Datei
> > gemacht, in der in ca. jeder fünften Zeile eine Ersetzung
> > gemacht werden musste.)
>
> Bei mir geht es im Moment gerade nur um Verzeichnisauflistungen, also
> eher ein Fall für awk oder sed, da die Datenmenge winzig ist

OK, in dem Fall spielt es wirklich keine Rolle.

> und man schon (auf meinem Rechner) deutlich merkt, daß Python erst
> geladen werden muß.

Das passiert aber nur beim ersten Mal (ebenso wie bei sed
oder awk). Danach ist es im Cache.

> (Wobei ich gerade nichtmal weiß, ob Hochkommata überhaupt in
> Dateinamen erlaubt sind.)

In Dateinamen sind _alle_ Zeichen erlaubt, außer Schräg-
striche ("/"), da sie als Verzeichnistrenner dienen, und
Nullbytes ("\0"), die intern als Endemarkierung von Strings
verwendet werden. Mit anderen Worten, in Dateinamen können
alle Bytes von 1 bis 255 außer 47 ("/") vorkommen. Und na-
türlich haben die Namen "." und ".." eine Sonderbedeutung.

Das gilt natürlich nur für Dateisysteme mit UNIX-Semantik,
also UFS, NFS (natürlich abhängig vom Server), ZFS, tmpfs,
ext2 und so weiter. »Fremde« Dateisysteme wie FAT, NTFS,
Samba, HPFS usw. unterliegen jeweiligen Einschränkungen.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
We're sysadmins.  To us, data is a protocol-overhead.
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 14 Jan 2009 - 12:17:55 CET

search this site