2011-03-07 4 views
0

Я даже стесняюсь спрашивать об этом здесь, но потребовалось больше времени, чем нужно.Простое, но неуловимое выражение

Скажем, у меня есть эти четыре файла:

IPCDR_ARB06067956VPLUS_T_201103 
IPCDR_ARB06067957VPLUS_T_201103 
IPCDR_MOV_ARB06067959VPLUS_T_20110 
MOV_CDRARB06067959VPLUS_T_201103 

Я хочу, чтобы вычленить информацию только те, которые начинаются с IPCDR_MOV и MOV_CDR.

Первое прочь был:

ls -1 | grep "^IPCDR_MOV|^MOV_CDR" 

, но не работает.

Я сделал много глупых тестов (которые я не буду вас беспокоить), и ничего не выходит. Может кто-то, пожалуйста, избавит меня от боли?

Спасибо!

ответ

2

Добавить переключатель -E для использования расширенного регулярного выражения.

$ ls -1 | grep -E "^IPCDR_MOV|^MOV_CDR" 
IPCDR_MOV_ARB06067959VPLUS_T_20110 
MOV_CDRARB06067959VPLUS_T_201103 
+0

хороший материал .. Я действительно попробовал '' -e''. по какой-то причине у меня это застряло в голове, это расширенный флаг (вместо '' -E''). Страница '' man'' согласна с вами. Благодарю. – filippo

0

Использование egrep вместо grep. В противном случае это будет буквальная строка вместо шаблона.

Смежные вопросы