🖥️gawk
➡️This is a command-line reference manual for commands and command combinations that you don’t use often enough to remember it. This cheatsheet explains the gawk command with important options and switches using examples.
3 minute read
▁ ▂ ▃ ▄ ꧁ 🔴☠ COMMANDLINE-KUNGFU WITH CHEATSHEETS ☠🔴꧂▅ ▃ ▂ ▁
# ██████╗ █████╗ ██╗ ██╗██╗ ██╗
# ██╔════╝ ██╔══██╗██║ ██║██║ ██╔╝
# ██║ ███╗███████║██║ █╗ ██║█████╔╝
# ██║ ██║██╔══██║██║███╗██║██╔═██╗
# ╚██████╔╝██║ ██║╚███╔███╔╝██║ ██╗
# ╚═════╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝
# Strings bearbeiten mit (g)awk
#-----------------------------------------------------------------------///
# In Skripten muss ich gelegentlich Ausgaben von Befehlen formatieren oder sonstwie bearbeiten, um sie z.B. als Mailtext eines Cronjobs zu verwenden.
uname -n | gawk '{print toupper($0)}'
# Das gibt den Hostnamen in Großbuchstaben aus.
# Natürlich geht auch das Umwandeln in Kleinbuchstaben:
echo ASDFGH | gawk '{print tolower($0)}' # Ergebnis: asdfgh
# Vielleicht will ich aber einfach nur wissen, wie lang eine Variable (ein String) ist.
echo "dasisteinlangerstring" | gawk '{print length($0)}' # Ergebnis: 21
# Gelegentlich bräuchte ich eine hexadezimale Zahl als dezimale.
echo 0xAF5D1 | gawk '{print strtonum($0)}' # Ergebnis: 718289
# Wichtig bei strtonum ist, dass es Großbuchstaben sein müssen. Das kann ich ja mit toupper zuvor noch machen.
# ...Das ist ja recht schön, aber wie kann ich eine Shellvariable an gawk übergeben?
String=23halloo1asdfasdf; gawk 'BEGIN {print substr("'"${String}"'",3,5)}' # Ergebnis: hallo
# Wenn wir schon bei substring sind, ist der Weg zu split nicht weit:
String=vorneundhinten; echo | gawk '{split("'"${String}"'",arr,"und"); print arr[1]}' # Ergebnis: vorne
# Das leere "echo" bewirkt das selbe wie "BEGIN" Gawk nimmt es mit Arrays zwar genauer als die Bash, aus irgendwelchen Gründen scheint der Zähler aber bei 1 zu beginnen und nicht bei 0.
# Üblicherweise mache ich mit gawk aber viel einfachere Dinge.
cat /etc/passwd | gawk -F":" '{print $1,$NF}'
# Das zeigt mir alle Linuxuser und ihre Shell, eben das erste und das letzte Feld in der passwd. Der Vorteil von gawk gegenüber cut ist, dass der Feldtrenner aus mehreren Zeichen bestehen kann.
# Als simples Beispiel nehme ich mal Folgendes:
echo -e "eins und zwei\ndrei und vier\nfuenf und sechs"
# Das ergibt:
# eins und zwei
# drei und vier
# fuenf und sechs
echo -e "eins und zwei\ndrei und vier\nfuenf und sechs" | gawk -F" und " '{print $1$2}'
# Gawk macht dann daraus:
# einszwei
# dreivier
# fuenfsechs
# Der Feldtrenner ist in diesem Fall das "und" mit je einem Leerzeichen davor und danach.
gawk '{a[$2]++;} ENDFILE {c=0; for (keys in a) { c++;};print c}' 2018*
# Count of total unique column 2 elements seen so far after each file
Cheatsheets are an excellent complement to other information sources like Linux man-pages, Linux help, or How-To’s and tutorials, as they provide compact and easily accessible information. While man-pages and detailed tutorials often contain comprehensive explanations and extensive guides, cheatsheets summarize the most important options forthe command gawk in a clear format. This allows users to quickly access the needed information for gawk without having to sift through lengthy texts. Especially in stressful situations or for recurring tasks, cheatsheets for gawk are a valuable resource to work efficiently and purposefully.
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
█║▌│║█║▌★ KALI ★ PARROT ★ DEBIAN 🔴 PENTESTING ★ HACKING ★ █║▌│║█║▌
██╗ ██╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗
████████╗██╔══██╗██╔═══██╗╚██╗██╔╝██╔════╝██╔══██╗
╚██╔═██╔╝██║ ██║██║ ██║ ╚███╔╝ █████╗ ██║ ██║
████████╗██║ ██║██║ ██║ ██╔██╗ ██╔══╝ ██║ ██║
╚██╔═██╔╝██████╔╝╚██████╔╝██╔╝ ██╗███████╗██████╔╝
╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═════╝
█║▌│║█║▌ WITH COMMANDLINE-KUNGFU POWER █║▌│║█║▌
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.