Linux: извлечение Данных от текстового файла

У меня есть текстовый файл, в которых тысячах данных там. например.

id=row_value
profile=row_value
name=row_value
email=row_value
address=row_value

id=row_value2
profile=row_value2
name=row_value2
email=row_value2
address=row_value2

.       .       .
.       .       .
.       .       .

Я хочу Извлечь все name и email из того файла. например.

name=row_value
email=row_value

name=row_value2
email=row_value2

.       .       .
.       .       .
.       .       .

ПРИМЕЧАНИЕ: Отметьте новую строку после каждого name и email пары..

Я Знаю, что это будет сделано в некоторых командах Linux как grep, sed, awk и т.д. Я - Новичок в командах Linux и помогите мне относительно этого..

1
задан 7 August 2014 в 16:45

2 ответа

Попробуйте это

grep "name\|email" <Path to your File> 
4
ответ дан 10 November 2019 в 18:44

Для содержания совести в чистоте вот awk версия:

$ awk '$0~/name/||/email/ {if ($0~/email/) $3="\n"; print $0}' testerfile.txt 
name=row_value
email=row_value  

name=row_value2
email=row_value2  

И этот, добавит точки:

awk '$0~/name/||/email/ {if ($0~/email/) $3="\n"; print $0}; $0~/^.[[:blank:]].[[:blank:]]./ {print} ' testerfile.txt

Вывод:

$awk '$0~/name/||/email/ {if ($0~/email/) $3="\n"; print $0}; $0~/^.[[:blank:]].[[:blank:]]./ {print} ' testerfile.txt 
name=row_value
email=row_value  

name=row_value2
email=row_value2  

.       .       .
.       .       .
.       .       .

Намного более простая версия первой версии:

awk '/^name/; /^email/ {$3="\n"; print}' testerfile.txt

Привязанный regex предотвратит для нахождения слов "имя" и "электронную почту" в другом месте в тексте, и только в начале строки

0
ответ дан 3 December 2019 в 07:05

Другие вопросы по тегам:

Похожие вопросы: