Одно решение состояло бы в том, чтобы установить Ваш макрос, чтобы принять и воздействовать на текущий выбор, затем выбрать часть файла, которым Вы хотите управлять на том, перед выполнением его.
Похож на Ваш вопрос, "Как перечислить файлы шаблоном, исключая каталоги с ls
только".
Нет никакого способа сделать это с чистым ls
. Можно объединиться ls
+ grep
как:
ls -ld *2010* | grep -v '^d'
Однако намного лучше использовать find
для этого:
find . -maxdepth 1 -type f -name "*2010*"
Не возможно выборочно отфильтровать каталоги с помощью только ls
. Вам нужно также find
или ls | grep
, как описано в ответе порыва. Но для Вашего определенного примера, для ответа на вопрос Вы спросили в своем комментарии:
Так снова: Я хочу, чтобы налог* файлы в текущем каталоге был перечислен, но каталог "invoices2010", который находится в том же рабочем каталоге и который также соответствует данному подстановочному шаблону 2010 года, должен быть пропущен в списке.
можно сделать
ls -l --ignore='invoices*' *tax2010*
который отфильтровывает что-либо соответствующее ignore
шаблон оболочки.
Не используйте grep с ls,
В ударе Вы могли показать файлы, которые имеют "2010" на его имя, но не смотрящий с числом:
ls -l *[!0-9]2010*
ls -dlp *2010*
было бы хорошее начало к решению, но оно зависит, на что Вы хотите, чтобы вывод был похож.
*2010*
подстановочный шаблон должен быть пропущен в списке.
– syntaxerror
05.10.2012, 11:03
Существуют причины не к grep
против ls
но если Вы игнорируете их, это работает. Используйте ls
управляйте как входной массив, звоните ls -ld
на каждой записи, переданной по каналу к grep
исключить каталоги с выводом, отправленным в пустой указатель, и если успешное эхо исходный вход:
for list in `ls` ; do ls -ld $list | grep -v ^d > /dev/null && echo $list ; done ;
Можно инвертировать grep и условный вывод, те же результаты:
for list in `ls` ; do ls -ld $list | grep ^d > /dev/null || echo $list ; done ;
Править: Мое плохое, это работает без соответствия шаблона, но если Вы добавляете подстановочный поиск как в OP выше, и у Вас есть каталог, который соответствует шаблону, вывод все еще включает системные сообщения, таким образом, необходимо было бы отфильтровать далее для получения просто списка файлов.
ОТРЕДАКТИРУЙТЕ снова: закрепленные обратные косые черты на/dev/null.
grep
луг для^d
. Я не думал об этом, очевидно.Спасибо. – syntaxerror 05.10.2012, 19:09