2011-01-28 6 views
0

Я пытаюсь изолировать все имена серверов (то есть sv012-cali) из html-файла «Servernick»: «sv012-cali» в приведенном ниже коде строки. Я думаю, что это кавычка, которая бросать егоgrep command line, linux

cat smtest.html | tr '"' '\n' | grep "^Servernick":"" | cut -d '"' -f 2

фрагмент файла HTML данных "отношения": 0}, { "ID": 415804" , "Servernick": "sv012-Cali", "Уровень": "3 "

+1

Это поможет, если вы можете показать фрагмент файла, который вы разбираете. –

+2

Этот вопрос будет более уместным либо на superuser.com, либо на unix.stackexchange.com –

ответ

1

Обновленный после OP представили данные выборки -

# cat test.data             
"Relation":0},{"ID":415804","Servernick":"sv012-cali","Level":"3" 
"Relation":0},{"ID":415804","Servernick":"sv012-balh","Level":"3" 
# cat test.data | tr "," "\n" | grep Servernick | cut -d '"' -f 4 
sv012-cali 
sv012-balh 

Оригинальный ответ -

Это то, что вам нужно?

# echo \"Servernick\":\"sv012-cali\" > test.data 
# cat test.data         
"Servernick":"sv012-cali" 
# cat test.data | tr '"' '\n'           

Servernick 
: 
sv012-cali 

# cat test.data | tr '"' '\n' | egrep -v "Servernick|:|^$" 
sv012-cali 
+0

этот вид работ ... есть и другие html-кодировки и подобные строки с «:» в нем, поэтому он должен быть конкретным при поиске «Servernick»: «sv012-cali» ... вот большой фрагмент файла данных «Relation»: 0}, {«ID»: 415804 »,« Servernick »:« sv012-cali »,« Level »: "3" – acctman

2

Вам необходимо избегать цитат. В bash используйте \ для вызова символов:

grep "^Servernick\":\"" 

или же положить двойные кавычки в одинарные кавычки:

grep '^servernick":"' 
2

Используйте одинарные кавычки, когда дело с строки, содержащие двойные кавычки:

grep '^Servernick":"'