2011-01-28 8 views
0

私はhtmlファイル "Servernick"内からすべてのサーバ名(すなわちsv012-cali)を分離しようとしています:下の行コードで "sv012-cali"私はそれが引用符grepコマンドライン、linux

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

それを投げたHTMLデータファイルのスニペット"関係":0}、{ "ID" 415804" 、 "Servernick": "sv012-カリ"、 "レベル":「3 "

+1

解析しているファイルのスニペットを表示すると便利です。 –

+2

この質問は、superuser.comまたはunix.stackexchange.com –

答えて

1

を -

# 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

引用符をエスケープする必要があります。\の文字をエスケープするには

grep "^Servernick\":\"" 

または代わりに、単一引用符であなたの二重引用符を置く:

grep '^servernick":"' 
2

二重引用符を使用含む文字列を扱う単一引用符:OPはサンプルデータを提供した後に更新

grep '^Servernick":"' 
関連する問題