Ich versuche, ein Skript zu schreiben, das eine Textdatei liest und jede Zeile in einer Zeichenfolge speichert. Ich möchte auch, dass das Skript alle Zeilen überspringt, die mit einem Hash-Symbol beginnen. Irgendwelche Vorschläge?Zeile in Textdatei überspringen, die mit '#' über KornShell (ksh) beginnt
Antwort
Sie sollten keine überspringenden Linien zu ksh
verlassen. Z.B. Dazu:
grep -v '^#' INPUTFILE | while IFS="" read line ; do echo $line ; done
Und statt des echo
Teil tun, was Sie wollen.
Oder wenn ksh
nicht diese Syntax unterstützt:
grep -v '^#' INPUTFILE > tmpfile
while IFS="" read line ; do echo $line ; done < tmpfile
rm tmpfile
Danke für den Vorschlag, ich bekomme, "Fehler auf Standard-Ausgabe schreiben die Pipe wird geschlossen" irgendwelche Ideen ?? – TomSelleck
Versuchte letztere Lösung und alles funktioniert gut. – TomSelleck
while read -r line; do
[[ "$line" = *()#* ]] && continue
# do something with "$line"
done < filename
Look für "Dateiname Patterns" oder "Dateiname Generation" in der KSH -Handbuchseite.
Was ist, wenn es Millionen Linien gibt ... Willst du in Millionen Strings streoe? – Vijay
Nein, ich werde sie nicht streicheln, weil es keine Millionen Linien geben wird. Ich sagte auch: Eine Saite, wie in EINER Saite. – TomSelleck