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

> 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
Anne Ortiz 14 Апр 2016 в 05:18

2 ответа

Лучший ответ

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

            cat datafile.txt | grep "M[0-9]*"|less
0
rakib_ 14 Апр 2016 в 02:35

< Сильный > 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
0
Ren 14 Апр 2016 в 02:35