2012-01-31 3 views
12

Мне просто интересно, какую команду мне нужно положить в терминал, чтобы прочитать текстовый файл, устранить все строки, которые не содержат определенного ключевого слова, а затем распечатать эти строки в новом файле. например, ключевым словом является «система». Я хочу иметь возможность печатать все строки, содержащие систему, в новый отдельный файл. ThanksКоманда терминала для поиска строк, содержащих определенное слово?

ответ

18

grep - твой друг.

Например, вы можете сделать:

grep system <filename> > systemlines.out 

человек Grep, и вы можете получить дополнительную полезную информацию, а также (например: номера строк, 1+ линии до, 1 + линии после отрицания - т.е. все строки, которые не содержат grep и т. д.)

Если вы используете Windows, вы можете установить cygwin или вы можете найти двоичный файл win32 для grep.

+0

по умолчанию grep чувствителен к регистру –

+2

вы можете использовать 'grep -i', чтобы сделать его регистрозависимым, но я не считаю, что это было требованием. –

-1

Grep «система» имя файла> нового файла

Вы могли бы хотеть сделать это немного поумнее, чтобы не включать строки со словами, как «dysystemic», но это хорошее место, чтобы начать.

+0

Обратите внимание, что параметр '-w' grep заставит выражение поиска быть «целым словом», то есть разделенным пробелами (включая начало и конец строки). – ghoti

2

ниже grep команды будет решить ур проблема

grep -i yourword filename1 > filename2 

with -i for case insensitiveness

without -i for case sensitiveness

, чтобы узнать, как Grep работает на ур сервере, обратитесь к странице руководства на ур сервере с помощью следующей команды

man grep 
3
grep '\<system\>' 

Будет искать строки, содержащие слово, а не систему в качестве подстроки.

+0

Это тоже помогло! – willykao

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