Я хочу печатать только каталоги с помощью awk команда. Я не хочу, чтобы напечатать текущие и родительские каталоги, так что я создал соответствующий матч регулярного выражения:Как печатать только каталоги с помощью команды awk
ls -la | awk '$1 ~ /[d].*/ && $9 !~ /^\.$/ && $9 !~ /^\.\.$/ { print $1"\t"$9 } '
код работает правильно, но я хотел, чтобы сделать его более удобным для чтения, например:
ls -la | awk '$1 ~ /[d].*/ && $9 !~ /^\.{1,2}$/ { print $1"\t"$9 } '
К сожалению, второй матч не работает.
Как его определить, чтобы соответствовать одному или двум dot s?
Почему не только используйте 'ls -lA', который будет исключать записи для' .' и '..'? – larsks
Да, всегда лучше использовать команды, которые до сих пор реализованы, но вы должны знать о них ... Спасибо за ответ. Я воспользуюсь вашим предложением, но мне все еще интересно, как мое регулярное выражение должно быть правильно определено для достижения своей цели. – Dominik
обе работы для меня – michaeltang