Hi,
wir sollen in der Uni ein kleines Tool schreiben, welches aus einer Textdatei jedes Wort in einer einzelnen Zeile ausgibt. Das hab ich jetzt mal so gemacht:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | value=`cat $1` teiler=' ,:.;=!?' IFS=$teiler read -ra array <<< $value function funktion() { for element in "${array[@]}" do echo "$element"; done } funktion |
Der aufruf wäre dann
parsen TextDatei
Damit parse ich also jedes Wort und gebe es aus. Nun habe ich nochmal nachgelesen in der Aufgabenstellung: "Das Tool soll unter allen gängigen Shells laufen" Jemand meinte gerade, dass nicht jede Shell ein Array kennt / kann. Stimmt das? Kann man das irgendwo nach lesen? Wie könnte man die Sache sonst realisieren?
Vielen Dank,
MysteriX
EDIT:
hab jetz nochmal folgendes zusammen getippt:
1 | tr -s '[[:punct][:space:]]' '\n' <$1 |
das funktioniert super. Aber die Frage bleibt: Wie finde ich heraus ob diese Befehle in allen Shells existieren?