|
|
|
bash. Как выбрать файлы из директории по заданному шаблону
|
|||
|---|---|---|---|
|
#18+
Всем доброе время суток. Суть задачи такова. В директории может находится множество различных файлов. Мне из них нужно выбрать свои. Они имеют определённый шаблон. [7символов].ABC.[8цифр].csv [7символов].DEF.[8цифр].csv [7символов].GHI.[8цифр].csv Как мне командой ls выбрать только мои, и сразу все 3? Как-то regexp подключить? Буду благодарен, если кто поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2011, 12:00 |
|
||
|
bash. Как выбрать файлы из директории по заданному шаблону
|
|||
|---|---|---|---|
|
#18+
xargs + find ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2011, 12:18 |
|
||
|
bash. Как выбрать файлы из директории по заданному шаблону
|
|||
|---|---|---|---|
|
#18+
ls | egrep '^[0-9]{7}\.ABC|DEF|GHI\.[0-9]{8}\.csv$' что-нить такое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2011, 12:45 |
|
||
|
bash. Как выбрать файлы из директории по заданному шаблону
|
|||
|---|---|---|---|
|
#18+
On 22.04.2011 13:00, Pierce34 wrote: > Автор: Pierce34. Всем доброе время суток. > > Суть задачи такова. > В директории может находится множество различных файлов. > Мне из них нужно выбрать свои. Они имеют определённый шаблон. > [7символов].ABC.[8цифр].csv > [7символов].DEF.[8цифр].csv > [7символов].GHI.[8цифр].csv > > Как мне командой ls выбрать только мои, и сразу все 3? > Как-то regexp подключить? \\ find . -type f "-(" -name "???????.ABC.????????.csv" -o -name "???????.DEF.????????.csv" ... "-)" -print0 | xargs -0 echo Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2011, 13:50 |
|
||
|
bash. Как выбрать файлы из директории по заданному шаблону
|
|||
|---|---|---|---|
|
#18+
--null--, Cпасибо за коммент. Почиатл man по egrep. Вроде как его возможностей вполне хватает. И всё даже работает Но! Оч. любопытно получается, команда действительно выбирает только строчки, кот содержат ABC или DEF или GHI названии файла. Однако на все осталььные условия - ей параллельно: есть там 8 цифр - нет там 8 цифр, csv. в конце, нет csv в конце - всё по барабану. Как только нашла ABC или DEF или GHI - то отображает эти записи. Как можно избавиться от такого эффекта?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2011, 16:10 |
|
||
|
bash. Как выбрать файлы из директории по заданному шаблону
|
|||
|---|---|---|---|
|
#18+
Pierce34, да - немного я ошибся, надо сгруппировать да и еще что-то условие задачи прочитал неверно - впереди "символов", а не "цифр" - поэтому так: ls | egrep '^.{7}\.(ABC|DEF|GHI)\.[0-9]{8}\.csv$' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2011, 17:32 |
|
||
|
bash. Как выбрать файлы из директории по заданному шаблону
|
|||
|---|---|---|---|
|
#18+
Теперь немного нужно усложнить задачу, а именно: выбрать строки в которые не входит запись "00". Например: ls |perl -nle 'if(/^[a-zA-Z0-9]{10}\.(CER|CON|CSA|ILD|PCM|PCS|PLE|SDD)\.\d{6}вот тут 2 цифры НЕ должын быть равны 00\.csv$/){print $_}' Нашёл в мане варианты, когда это можно сделать относительно одного символа, с помощью [^0] Но это применимо только к одному символу, а что насчёт выражения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2011, 20:24 |
|
||
|
bash. Как выбрать файлы из директории по заданному шаблону
|
|||
|---|---|---|---|
|
#18+
Pierce34, ls |perl -nle 'if(/^[a-zA-Z0-9]{10}\.(CER|CON|CSA|ILD|PCM|PCS|PLE|SDD)\.\d{6}[1-9]{2}\.csv$/){print $_}' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2011, 15:31 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=37300732&tid=1484193]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 506ms |

| 0 / 0 |
