
A continuación se muestra un ejemplo del uso cut
para dividir la entrada en campos usando un delimitador de espacio y obtener el segundo campo:
cut -f2 -d' '
¿Cómo se puede definir el delimitador como una pestaña, en lugar de un espacio?
Respuesta1
Dos caminos:
Presione Ctrl+ Vy luego Tabpara usar "textualmente"inserto citado.
cut -f2 -d' ' infile
o escríbelo así para usarlocotización ANSI-C:
cut -f2 -d$'\t' infile
La $'...'
forma de comillas no forma parte del lenguaje shell POSIX (aún no), pero funciona al menos en ksh, mksh, zsh y Busybox además de Bash.
Respuesta2
La pestaña es la predeterminada.
Ver elcortar página de manual.
-d delim
Use delim as the field delimiter character instead of the tab
character.
Entonces puedes simplemente escribir
cut -f 2
Respuesta3
awk -F '\t' '{ print $2 }' inputfile
Esto extrae el segundo campo delimitado por tabulaciones de cada línea de entrada de inputfile
.
Respuesta4
Alternativamente, se podría envolver cut en una función.
function getColumns ()
{
local -r delimiter="${1:?}"
local -r columns="${2:?}"
if [[ "$delimiter" == '\t' || "$delimter" == "tab" ]]; then
cut "--fields=${columns}"
return
fi
cut "--delimiter=${delimiter}" "--fields=${columns}"
}