Это должно делать то, что вы хотите в awk
:
ls -l | awk '$9~/./; gsub(/^ +/,""); print}'
Вот немного другой подход в perl
:
ls -l | perl -lane 'if ($F[7]=~/./) '
Примечание: я не могу не рекомендовать вам тщательно подумать о том, чего вы на самом деле хотите достичь, поскольку могут быть более эффективные способы. Как уже упоминалось @confetti, просто печатать имена файлов проще с помощью ls -1
.
Примечание. Как правильно указано в комментариях, это решение не является надежным. Я бы добавил, что никакой разбор не ls
может считаться безопасным и исправным.
Изучение AWK: Поскольку ОП объяснил в комментариях, что этот вопрос является частью более широкого стремления стать опытным в AWK, у меня есть несколько рекомендаций.
- Пройдите этот прекрасный учебник AWK
- Держите этот справочник всегда открытым
- Прочитайте эту короткую статью о встроенных переменных AWK
- Изучите некоторые из бесчисленных ответов на вопросы AWK на StackExchange
- Рассмотрим альтернативы, кратко изложенные здесь