awk -v m="\x0a" -v N="3" '{$N=m$N ;print substr($0, index($0,m)+1)}'
Isso corta o que está antes do campo especificado nr., N, e imprime todo o resto da linha, incluindo o campo nr.N e mantém o espaçamento original (não reformata). Não importa se a string do campo aparece também em algum outro lugar da linha, que é o problema com a resposta de daisaa.
Defina uma função:
fromField () {
awk -v m="\x0a" -v N="$1" '{$N=m$N; print substr($0,index($0,m)+1)}'
}
E use-o assim:
$ echo " bat bi iru lau bost " | fromField 3
iru lau bost
$ echo " bat bi iru lau bost " | fromField 2
bi iru lau bost
A saída mantém tudo, incluindo espaços à direita
Funciona bem para arquivos onde '/ n' é o separador de registro, então você não tem aquele caractere de nova linha dentro das linhas. Se você quiser usá-lo com outros separadores de registro, use:
awk -v m="\x01" -v N="3" '{$N=m$N ;print substr($0, index($0,m)+1)}'
por exemplo. Funciona bem com quase todos os arquivos, desde que não usem hexadecimal char nr. 1 dentro das linhas.