# awk https://www.grymoire.com/Unix/Awk.html ```bash $ cat test.txt ubuntu Linux mint Linux debian Linux raspbian Linux mojave macOS sierra macOS tiger macOS snowleopard macOS ``` Afficher la 1ere colonne d'un fichier: ```bash $ awk '{print $1}' test.txt ubuntu mint debian raspbian mojave sierra tiger snowleopard ``` Afficher la 2eme colonne d'un fichier: ```bash $ awk '{print $2}' test.txt Linux Linux Linux Linux macOS macOS macOS macOS ``` Afficher la 1ere colonne d'un fichier, excepté la 1ere ligne (header): ```bash $ awk 'NR!=1{print $1}' test.txt mint debian raspbian mojave sierra tiger snowleopard # NR!=n° de ligne ``` Afficher le fichier entier: ```bash $ awk '{print $0}' test.txt ubuntu Linux mint Linux debian Linux raspbian Linux mojave macOS sierra macOS tiger macOS snowleopard macOS # commande identique: $ awk '1' test.txt ``` Fichier avec séparateur: ```bash $ cat test.csv ubuntu,Linux mint,Linux debian,Linux raspbian,Linux mojave,macOS sierra,macOS tiger,macOS snowleopard,macOS ``` Afficher la 1ere colonne d'un fichier: il faut spécifier le séparateur: ```bash $ awk -F"," '{print $1}' test.csv ubuntu mint debian raspbian mojave sierra tiger snowleopard ``` ```bash # idem, autre commande: # FS (Field Separator) $ awk '{print $2}' FS="," test.csv Linux Linux Linux Linux macOS macOS macOS macOS ``` Afficher les colonnes 1 et 2: ```bash $ awk -F"," '{print $1, $2}' test.csv ubuntu Linux mint Linux debian Linux raspbian Linux mojave macOS sierra macOS tiger macOS snowleopard macOS ``` Afficher les colonnes 1 et 2, avec un séparateur: ```bash # OFS (Output Field Separator) $ awk -F"," '{print $1, $2}' OFS=";" test.csv ubuntu;Linux mint;Linux debian;Linux raspbian;Linux mojave;macOS sierra;macOS tiger;macOS snowleopard;macOS ``` Passer un argument à awk: ```bash $ x=3 $ awk '{print $0,val}' OFS=, val=$x test.csv ubuntu,Linux,3 mint,Linux,3 debian,Linux,3 raspbian,Linux,3 mojave,macOS,3 sierra,macOS,3 tiger,macOS,3 snowleopard,macOS,3 $ export x $ awk '{print $0,ENVIRON["x"]}' OFS=, test.csv ubuntu,Linux,3 mint,Linux,3 debian,Linux,3 raspbian,Linux,3 mojave,macOS,3 sierra,macOS,3 tiger,macOS,3 snowleopard,macOS,3 ```