2016-04-14 9 views
0

У меня есть файл данных, который выглядит так: иногда некоторые из них начинаются с «key M ###» (### обозначает любое число), как я могу отфильтровать мой поиск так что появятся только те записи, содержащие «М»?как я могу отфильтровать поиск в linux

> dip binary_data_file.df | tail 
key K701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key M701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key M701, datafile binary_data_file.df, prt 0000000 

ответ

0

Вы можете передать данные в grep для фильтрации. Что-то вроде ниже -

  cat datafile.txt | grep "M[0-9]*"|less 
+0

спасибо !! что на самом деле сработало. –

0

file.txt:

key K701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key M701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key K701, datafile binary_data_file.df, prt 0000000 
key M701, datafile binary_data_file.df, prt 0000000 

Использование grep:

$ grep -E 'M[0-9]{3}' file.txt 

или использовать egrep:

$ egrep 'M[0-9]{3}' file.txt 

Выход:

key M701, datafile binary_data_file.df, prt 0000000 
key M701, datafile binary_data_file.df, prt 0000000