Deutsch
Germany.ruФорумы → Архив Досок→ Linux & Co

Регулярное выражение

683  
Regenwolke завсегдатай17.05.11 08:26
Regenwolke
17.05.11 08:26 
Всем привет! надеюсь, в правильную ветку пишу..Если что, просьба модераторам перенести в Программирование. Помогите пжлст с регулярными выражениями! Короче, надо составить следующее выражение (скрипт):
есть список имен файлов. Из них нужно выбрать только те, у которых в имени одно подчеркивание, например,
Rad05_4564739c-9c63-47c1-9939-71690c2e7ad6.xml следует выбрать
А те, у которых два подчеркивания - не выбирать, например,
Rad05_2251_4564739c-9c63-47c1-9939-71690c2e7ad6.xml надо не выбирать.
Файл называется aaa, состоит из больше тысячи строк.
Спасибо!
#1 
  o_0 прохожий17.05.11 09:33
NEW 17.05.11 09:33 
в ответ Regenwolke 17.05.11 08:26, Последний раз изменено 17.05.11 09:37 (o_0)
grep '_' aaa | grep -v '.*_.*_.*'
Это первое, что пришло в голову. Наверное, есть более элегантный вариант, но этот тоже работает.
#2 
Regenwolke завсегдатай17.05.11 09:54
Regenwolke
NEW 17.05.11 09:54 
в ответ o_0 17.05.11 09:33
Спасибо огромное!
элегантно у меня не выходит
я могла добиться только того, что выбирались именно те строки, которые с ДВУМЯ подчеркиваниями... а вот чтоб он как раз ИХ не выбирал... точно, grep -v - спасибо за подсказку!
#3 
voxel3d патриот17.05.11 10:10
voxel3d
NEW 17.05.11 10:10 
в ответ Regenwolke 17.05.11 09:54
#!/usr/bin/perl
use strict;
use warnings;
while( <DATA> ) {
print if /^[^_]*_[^_]*$/;
}
__DATA__
Rad05_4564739c-9c63-47c1-9939-71690c2e7ad6.xml
Rad05_2251_4564739c-9c63-47c1-9939-71690c2e7ad6.xml


Dropbox - средство синхронизации и бэкапа файлов.
#4 
  o_0 прохожий17.05.11 13:07
NEW 17.05.11 13:07 
в ответ voxel3d 17.05.11 10:10
можно ведь просто
grep '^[^_]*_*[^_]*$' aaa
это я и имел в виду под более элегантным
#5 
Regenwolke завсегдатай17.05.11 13:34
Regenwolke
NEW 17.05.11 13:34 
в ответ o_0 17.05.11 13:07
Супер, работает, всем-всем-всем (!!!) СПАСИБО ОГРОМНОЕ!

#6 
voxel3d патриот17.05.11 14:40
voxel3d
NEW 17.05.11 14:40 
в ответ o_0 17.05.11 13:07
Да я, собсно, регэксп написал, ессно, ей чтение из файла содержащего и данные и скрипт не подходит.
Dropbox - средство синхронизации и бэкапа файлов.
#7