Einführung von
awk
in Zeilenweise Daten
verarbeitenvim, nano
in Editoren
in der ShellVideo: Bashino - #09 Spalten verschieben und filtern mit awk und tr [6 min]
Video: Bashinho - #08 Texteditoren in der Bash [9 min - letzten 2 irrelevant]
awk
= “Programmiersprache” zur
(zeilenweisen) Datenverarbeitung
echo "A B" | awk '{print $2}'
) oder in Datei definiert
(awk -f programFile
)
'
quoten “-F
” = field separator zur spaltenweisen
Datentrennung pro Zeile (setzt “FS
” und “OFS
”
Variable, siehe unten)$SPALTENNUMMER
ansprechbar;
$0
= ganze Zeile=
” angelegt
echo 4 | awk '{i=$1+2; print i}'
echo A B | awk '{$2="D"; print $0}'
$0
= Zusammensetzung der aktuellen
Spaltenelemente/Felder mit aktuellem (output) field separator
(OFS
) (kann auch geändert werden)NF
= Anzahl Spalten ($NF
= letzte Spalte)
(number of fields)
echo A B | awk '{print $NF}'
)echo A B | awk '{print NF}'
)NR
= aktuelle Zeilennummer (number of rows), z.B.
zeilennumerierte Ausgabe
(ls -l | awk '{print "Zeile "NR" : "$0}'
)FS
= verwendetes Spaltentrennzeichen (field separator)
-F
” setzen (setzt auch OFS)echo "A;B" | awk -F ";" '{print $1}'
echo "A;B" | awk 'BEGIN{FS=";"}{print $1}'
OFS
= aktuelles Spaltentrennzeichen der Ausgabe (output
field separator); muss (für alle Zeilen) im “BEGIN
”-block
(siehe unten) gesetzt werden
echo "A B" | awk 'BEGIN{OFS=":"}{print $1,"lala"}'
;
” = Befehlstrennzeichen (Beispiel weiter unten)print
= Ausgabe mit Zeilenumbruch
echo "Hans Peter" | awk '{print "Name="$2"\nVorname="$1}'
"
quotenprintf
= Ausgabe OHNE Zeilenumbruch
echo "17" | awk '{printf "input="$0; printf "next"; print "linebreak"}'
if( NR%2 == 0 ) {print "gerade"} else {print $0}
=
if conditionalfor( i=0; i<5; i++ ) { printf " i="i; }
=
for loopingBEGIN{}
” und
“END{}
”-Block (jeweils optional),
echo "Doe,John" | awk -F "," 'BEGIN{print "Vor Nach"}{print $2" "$1}END{print "#Ende"}'
Folgende kompakte Online awk Tutorials sind ein guter Einstieg
Warum bzw. wann muss man sich mit Kommandozeileneditoren herumschlagen?
vi
oder vim
= Kommandozeileneditor
:
”-Präfix leitet Kommandos ein, z.B.
:w
” = speichert die aktuelle Datei (write):w myFile.txt
” = speichert den Inhalt in Datei
“myFile.txt”:w!
” = überschreiben der Datei auch wenn geschützt
etc.:q
” = beendet vim (quit); nicht
möglich bei ungespeicherten Änderungen:q!
” = wirklich beenden und ungespeicherte Änderungen
gehen verloren:wq
” = speichern und beenden (in einem Rutsch)d
”+ENTER = löscht aktuelle Zeiled2
”+ENTER = löscht aktuelle plus 2 Folgezeilen (also
3!)Wer sich an vim versuchen will, sollte das schon direkt in Linux
vorhandene “vim tutorial” bearbeiten, in dem man einfach
vimtutor
in der Konsole eingibt/aufruft!
nano
ist ein alternativer Editor zu vim
,
welcher einen anderen Befehlssatz bzw. eine andere Nutzerführung
verwendet.
Um mit nano
vertraut zu werden, sollte man einen ersten
Blick auf dessen eingebaute Hilfe werfen. Dazu
nano
aufrufennano
verlassenDownload: PDF Version dieses Tutorials. Erstellt am 25.07.2024.