print - awk-v examples
Uso de awk para imprimir caracteres de índice específico en una línea (3)
De acuerdo, sé que es bastante simple imprimir argumentos específicos de una línea usando $:
$ cat file
hello world
$ awk ''{print $1}'' file
hello
Pero, ¿y si quiero imprimir los caracteres del 2 al 8? o de 3 a 7? ¿Es eso posible con awk?
Sí. Puede usar la función substr
:
http://www.starlink.rl.ac.uk/docs/sc4.htx/node38.html
En su caso, para caracteres impresos del 2 al 8:
echo "hello" | awk ''{ print substr( $0, 2, 6 ) }''
resultado es:
ello
Si Perl es una opción:
perl -lne ''print substr($_,1,6)'' file
La salida es idéntica a la respuesta de @nims
awk ''{print substr($0,2,6)}'' file
la sintaxis para substr () es
substr(string,start index,length)