Isso deve fazer o que você deseja em awk
:
ls -l | awk '$9~/./{for (i=1;i<9;i++){$i=""}; gsub(/^ +/,""); print}'
Aqui está uma abordagem ligeiramente diferente em perl
:
ls -l | perl -lane 'if ($F[7]=~/./) {s/.*$F[7]//; print}'
Observação: não posso deixar de recomendar que você pense bem sobre o que realmente deseja alcançar, pois pode haver maneiras melhores. Como mencionado por @confetti , apenas imprimir os nomes dos arquivos é mais fácil de ser feito com ls -1
.
Nota: Como corretamente apontado nos comentários, esta solução não é robusta. Gostaria de acrescentar que nenhuma análise de ls
pode ser considerada segura e sadia.
Learning AWK: Como o OP explicou nos comentários que essa pergunta é parte de uma busca mais ampla para se tornar proficiente no AWK, tenho algumas recomendações.
- Analise o tutorial do AWK
- Mantenha este guia de referência sempre aberto
- Leia este breve artigo nas variáveis internas do AWK
- Estude algumas das inúmeras respostas às perguntas do AWK no StackExchange
- Considere as alternativas, resumidas aqui