Você pode ancorar a pesquisa no final da linha e contar quantos caracteres adicionais você quiser:
grep 'X.$'
irá procurar por "X" como o segundo último caractere,
grep 'X.\{4\}$'
irá procurar por "X" como o quinto último caractere, etc.
Eu quero grep o segundo último ou enésimo caractere último de cada linha de um arquivo. Não consigo encontrar como fazer isso no Linux.
Você pode ancorar a pesquisa no final da linha e contar quantos caracteres adicionais você quiser:
grep 'X.$'
irá procurar por "X" como o segundo último caractere,
grep 'X.\{4\}$'
irá procurar por "X" como o quinto último caractere, etc.
Eu sugiro com o GNU grep:
echo abcdef | grep -Po '.(?=.{1}$)'
Saída:
e
echo abcdef | grep -Po '.(?=.{3}$)'
Saída:
c
Tags grep