Software > Programmieren, Kompilieren
shell Programmierung
uwe:
Hallo
Ich habe nachfolgende Problemstellung welche ich mittels script erkennen möchte.
- Es wird mehrmals täglich ein File erstellt welches Zeile für Zeile (up to 2000) informationen enthält die anschliessend an den IBM Hosts übermittelt werden.
- Es kann durch Fehleingabe vorkommen, dass eine Zeile dieses Files (Record) die maximal zulässige Anzahl Char (in meinem Fall 579) übersteigt was dazu führt, dass der Batch Job auf dem Host dann abbricht.
Ziel:
Ich möchte erkennen wenn eine Zeile dieses Files die maximale länge von 579 Char überschreitet.
ich habe dazu einen grep der das könnte, aber mir erscheint das nicht sehr effizient
grep -v '^............579 mal einen Punkt.......$' Filename
listet mir alle Zeilen auf welche mehr als 579 Char pro Zeile haben.
Frage:
Hat jemand eine Idee wie sich das besser realisieren lassen könnte?
Für eure Hilfe bereits besten Dank
Gruss Uwe
erisch:
gibts fuer regexps nicht quantifizierer? Ich dachte schon.
guck mal hier: http://www.regenechsen.de/phpwcms/index.php?regex_allg_quant
Mfg. erisch
DukeNuke2:
kann man mit nem kleinen script lösen...
--- Code: ---while read LINE
do
echo $LINE | wc -c
done < $1
--- Ende Code ---
einfach das script aufrufen mit dem zu zählenden file als argument...
Drusus:
Moin,
Wenn es nur darum geht ob in der Eingabedatei (hier $FILENAME) eine Zeile zu lang ist:
--- Code: ---if [ `cut -c579- $FILENAME | uniq | wc -l` != 1 ]; then
echo "Some line is too long or input file empty"
exit 1
fi
--- Ende Code ---
Tschau,
Drusus.
dornroeschen:
Als Filter:
--- Code: ---nawk 'length <= 580'
--- Ende Code ---
blendet alle Zeilen aus, die einschließlich Newline länger als 580 Zeichen sind.
Rainer
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln