Awk

Uit De Vliegende Brigade
Versie door Jeroen Strompf (overleg | bijdragen) op 28 sep 2022 om 16:36 (→‎Examples)
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

Awk is a scripting language for manipulating data in files - Maybe what I would call a parser or text file parser. Around 2021-2022, I Occasionally switch between data in spreadsheets and in associative Bash arrays.

So maybe I've just been looking for Awk? It is thanks to this video: - Gary Exlains - Everyone needs to learn a little bit of AWK that I came across this.

Examples

Create a sample file:

cd Desktop
ls /usr/bin -s > ls_usr_bin.txt

Output a file to screen:

awk '{print}' ls_usr_bin.txt

of

awk '{print $0}' ls_usr_bin.txt

where $0 represents the entire line.

Print only the first column of the file (where fields are separated by a space);

awk '{print $1}' ls_usr_bin.txt

Regular expressions: Include all lines containing gcc:

$ awk '/gcc/ {print}' ls_usr_bin.txt

    4 c89-gcc
    4 c99-gcc
    0 gcc
    0 gcc-9
    0 gcc-ar
    0 gcc-ar-9
    0 gcc-nm
    0 gcc-nm-9
    0 gcc-ranlib
    0 gcc-ranlib-9
    0 x86_64-linux-gnu-gcc
 1132 x86_64-linux-gnu-gcc-9
    0 x86_64-linux-gnu-gcc-ar
   36 x86_64-linux-gnu-gcc-ar-9
    0 x86_64-linux-gnu-gcc-nm
   36 x86_64-linux-gnu-gcc-nm-9
    0 x86_64-linux-gnu-gcc-ranlib
   36 x86_64-linux-gnu-gcc-ranlib-9

Filter rules according to a regular expression: All lines starting with the string 'w' → DOESN'T WORK!?

awk '/^w/ {print $1}' ls_usr_bin.txt

See also

Sources