Регулярное выражение - это не глобус.
Я предполагаю, что вам нужны файлы, начинающиеся с "d". В этом случае вам нужно:
ls /etc | sort | grep '^d'
Как следующий оператор ведет себя, зависит от файлов в текущем каталоге:
ls /etc | sort | grep p*
Поскольку он не заключен в кавычки, оболочка попытается развернуть глобус p *
, заменяя его на файлы с соответствующими именами из текущего каталога .
Если имена файлов не совпадают, литерал p *
передается в grep
. Поскольку grep
ожидает регулярных выражений, он интерпретирует p *
как означающий ноль или более вхождений буквы p
. Поскольку все либо имеет p
, либо нет, соответствует всему .
grep d *
ничего не перечисляет? Вероятно, это означает, что в текущем каталоге было имя файла, начинающееся с d
. Чтобы быть конкретным, предположим, что имя файла было дихотомией
. Оболочка расширяет d *
до дихотомии
и передает это в качестве аргумента grep
. Таким образом, эффективная команда:
grep dichotomy
Вероятно, поэтому не было результатов, когда вы запустили grep d *
.
d *
? Рассмотрим команду:
grep d*
Если это несколько файлов, соответствующих этому глобу, скажем, dmesg
daemon.log
и dpkg.log
. Оболочка расширит d *
до списка этих файлов в алфавитном порядке (который зависит от вашей локали). Это может привести к следующему:
grep daemon.log dmesg dpkg.log
Эта команда ищет строку daemon.log
в файлах dmesg
и dpkg.log
. Если этой строки нет в этих файлах, результат не будет.
printf \\n%.0b `seq 1 ${NUMBER OF TIMES YOU WANT}` | $CMD
Если ваш $CMD
не любит трубу, вы можете попробовать:
printf 'PRESS CTRL+V then ENTER TWICE\n' >&2 ; read -r ENTER
$CMD <<YESALREADY
$(printf "$ENTER\n%.0b" `seq 1 ${NUMBER OF TIMES YOU WANT}`)
YESALREADY
Если это не сработает, вам следует поискать решение вроде expect
уже упомянутого, или pty
. Например, zsh
имеет встроенный zpty
модуль.
Если echo
ing или yes
ing ввода в интерактивную программу не достаточно, чтобы обмануть ее, это обычно потому, что она пытается быть умной и проверяет, является ли ее ввод действительно терминалом или трубой. Для этого нужен молоток побольше; тот, которым обычно орудуют люди, это expect, который был написан для обхода этой проблемы.