LinuxForum.Fans
Тема

разбираюсь с grep

Автор: ibahob 12 сообщений 3940 просмотров
#333320

Хочу чтобы вывел фалы rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d которые в текущей папке
написал

text
ls | grep ^rc\d\.d$

Но ничего не выводит. Где я ошибся

#333326
"ibahob⇓" написал:
Хочу чтобы вывел фалы rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d которые в текущей папке

Вам нужно вывести содержимое файлов, соответствующих определённому шаблону и находящихся в определённом каталоге или только их имена?

#333330
text
echo -e 'rc0.d\nrc1.d' | grep -P '^rc\d.d$'
#333331
riso написал:
text
echo -e 'rc0.d\nrc1.d' | grep -P '^rc\d.d$'

o_O

#333336

Lupo Alberto,
?

#333340
"riso⇓" написал:
Lupo Alberto,
?

Не понятно использование предложенной вами команды в контексте данной темы.

#333341

у меня в системе нет rc.* каталогов, поэтому я эмулировал команду ls -1 и сделал grep. Для того, чтобы grep обрабатывал \d, ему нужно передать параметр --perl-regexp, так что по сути я ответил на вопрос ТС.

#333343
"ibahob⇓" написал:
Но ничего не выводит. Где я ошибся

1) кавычки вокруг регулярки забыл...
2) \dXXX метчит один символ с кодом XXX. используй [0-9] или [:digit:] или как у riso

#333347
Lupo Alberto написал:

Вам нужно вывести содержимое файлов, соответствующих определённому шаблону и находящихся в определённом каталоге или только их имена?

Только их имена

#333348

Спасибо riso, Lupo Alberto, вот что получилось
ls | grep --perl-regexp "^rc\d\.d$"

#333391
ibahob написал:
...вот что получилось
ls | grep --perl-regexp "^rc\d\.d$"
text
lupo@sabayon-laptop ~ % cd /tmp
lupo@sabayon-laptop /tmp % touch rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d
lupo@sabayon-laptop /tmp % touch rca.d rcb.d rcc.d rc.d rc4.d rc5.d rc6.d

lupo@sabayon-laptop /tmp % ls -l итого 4 drwx------ 2 lupo lupo 80 авг 19 20:31 akonadi-lupo.YFKhgq/ drwx------ 2 lupo lupo 40 авг 19 20:31 kde-lupo/ drwx------ 2 lupo lupo 120 авг 19 20:32 ksocket-lupo/ drwx------ 2 root root 40 авг 19 20:30 pulse-PKdhtXMmr18n/ -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 rc0.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 rc1.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 rc2.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 rc3.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 rc4.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 rc5.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 rc6.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:35 rca.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:35 rcb.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:35 rcc.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:35 rcd.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:35 rce.d srwxr-xr-x 1 lupo lupo 0 авг 19 20:32 virt_1113= -rw------- 1 lupo lupo 977 авг 19 20:31 virtuoso_ZT4245.ini lupo@sabayon-laptop /tmp $ ls -l /tmp/rc[0-9].d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 /tmp/rc0.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 /tmp/rc1.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 /tmp/rc2.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 /tmp/rc3.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 /tmp/rc4.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 /tmp/rc5.d -rw-r--r-- 1 lupo lupo 0 авг 19 20:34 /tmp/rc6.d

#333397
ibahob написал:
Хочу чтобы вывел фалы rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d которые в текущей папке
написал
text
ls | grep ^rc\d\.d$

Но ничего не выводит. Где я ошибся

Может так:

text
cat ./rc[0-6].d
Войдите или зарегистрируйтесь, чтобы ответить.