Si desea imprimir solo los primeros 75 caracteres de la segunda columna (incluidos los espacios y suponiendo que solo haya dos columnas en el archivo), puede hacer lo siguiente:
$ perl -pe 's/(\t.{75}).*/$1/' file
XY981743 foobarlkasdf saflkas asfZR!sgfad asdSAD asdsadf SAdfasdf46lk lksad bar fool
O con GNU sed
:
$ sed 's/\(.*\t.\{75\}\).*/\1/' file
XY981743 foobarlkasdf saflkas asfZR!sgfad asdSAD asdsadf SAdfasdf46lk lksad bar fool
O:
$ sed -r 's/(.*\t.{75}).*/\1/' file
XY981743 foobarlkasdf saflkas asfZR!sgfad asdSAD asdsadf SAdfasdf46lk lksad bar fool
Alternativamente, puede usarlo fold
, diciéndole que corte los primeros 91 caracteres (eso es 8 para el identificador y otros 8 para la pestaña), e imprimiendo solo la primera línea:
$ fold -w 91 file | head -n1
XY981743 foobarlkasdf saflkas asfZR!sgfad asdSAD asdsadf SAdfasdf46lk lksad bar fool
Si su archivo puede tener más de 2 columnas y solo desea truncar la segunda, puede hacerlo (que, como acabo de notar, es solo una nueva redacción de la respuesta de Stephen ):
$ awk -F"\t" -vOFS="\t" '{$2=substr($2,1,75)}1;' file
XY981743 foobarlkasdf saflkas asfZR!sgfad asdSAD asdsadf SAdfasdf46lk lksad bar fool
O (tenga en cuenta que esto se romperá si los primeros 75 caracteres de la segunda columna se pueden interpretar como una expresión regular):
$ perl -F"\t" -pale 's/$F[1]/substr($F[1],0,75)/e' file
XY981743 foobarlkasdf saflkas asfZR!sgfad asdSAD asdsadf SAdfasdf46lk lksad bar fool
awk 'BEGIN{OFS=FS="\t"} {$2=substr($2,1,75)}1' file