Du kannst dem print-Befehl die Ausgabedatei mitgeben:
mein Testcode als Einzeiler:
1 | mario@Wolke:~$ echo -e 'abc\nABC\n123' | awk '/^[A-Za-z]*$/ {print >"./match_grossklein.txt"}; /^[a-z]*$/ {print >"./match_klein.txt"; next}; /^[A-Z]*$/ {print >"./match_gross.txt"; next}; {print >"./rest.txt"}'
|
Das echo dient nur zur Bereitstellung der drei Testzeilen für das
awk-Script.
Das awk-Script nochmal aufgedröselt zur besseren Lesbarkeit;
es kann so auch in eine awk-Scriptdatei geschrieben werden welche dem
awk-Befehl über die Option -f übergeben wird;
im Einzeiler zuvor sind diese Abschnitte durch jeweils ein Semikolon
getrennt:
1 | /^[A-Za-z]*$/ {print >"./grossklein.txt"} #Zeile mit Buchstaben
|
2 | /^[a-z]*$/ {print >"./klein.txt"; next} #Zeile mit Kleinbuchstaben
|
3 | /^[A-Z]*$/ {print >"./gross.txt"; next} #Zeile mit Großbuchstaben
|
4 | {print >"./rest.txt"} #Zeile ohne Treffer zuvor
|
Ist eine Zeile in eine Zieldatei eingetragen, wird durch die
'next'-Anweisung die Bearbeitung der aktuellen Datenzeile beendet und
zur nächsten übergegangen.
Soll eine Zeile in mehrere Zieldateien eingetragen werden, darf die
Bearbeitung der Datenzeile nicht mit 'next' beendet werden (#Zeile mit
Buchstaben). So wird die Bearbeitung dieser Datenzeile mit den folgenden
Mustern fortgesetzt und die dortigen Anweisungsblöcke werden ausgeführt
.