командная строка sed - PullRequest
       6

командная строка sed

0 голосов
/ 24 июля 2010

Привет! Мне нужно запустить команду «sed» для файла file1.txt, и он должен извлечь все имена, которые находятся между StringA и StringB ... например: «Nickname»: «bad_name», извлечь bad_name, а затем сохранить все результаты.output.txt.это вообще возможно или я должен смотреть на другую команду?

Ответы [ 2 ]

2 голосов
/ 24 июля 2010

, не показывая больше образца вашего file1.txt, я предполагаю, что у вас согласованный формат данных Если это так, используйте awk

echo '"Nickname":"bad_name"' | awk -F":" '{print $NF}'

Для файла просто введите имя файла

awk -F":" '{print $NF}' file > output.txt

В противном случае предоставьте больше образцов данных для работы с нами.

1 голос
/ 24 июля 2010

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

dmedvinsky@home:~$ cat file1 
"Nickname":"bad_name"
"First Name":"Dmitry"
bad line
"Dog Name":"Chuppy"
another bad line

dmedvinsky@home:~$ cat file1 | sed -e '/\(.\+\)":"\(.\+\)"/!d' -e 's/"\(.\+\)":"\(.\+\)"/\2/'
bad_name
Dmitry
Chuppy

Первое выражение удаляет плохо отформатированные строки, второе заменяет шаблон второй сопоставленной группой - содержимое вторых кавычек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...