Très bien, donc je sais qu'il est assez simple d'imprimer des arguments spécifiques d'une ligne en utilisant $:
$ cat file
hello world
$ awk '{print $1}' file
hello
Mais que faire si je veux imprimer les caractères 2 à 8? ou 3 à 7? Est-ce possible avec awk?
awk '{print substr($0,2,6)}' file
la syntaxe de substr () est
substr(string,start index,length)
Oui. Vous pouvez utiliser la fonction substr
:
http://www.starlink.rl.ac.uk/docs/sc4.htx/node38.html
Dans votre cas - pour les caractères d'impression de 2 à 8:
echo "hello" | awk '{ print substr( $0, 2, 6 ) }'
le résultat est:
Ello
Si Perl est une option:
Perl -lne 'print substr($_,1,6)' file
La sortie est identique à la réponse de @nims