我試圖從下面的行代碼中的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 「
我試圖從下面的行代碼中的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 「
更新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
你需要轉義引號。在bash中使用\
轉義字符:
grep "^Servernick\":\""
或可選擇地把你的雙引號單引號內:
grep '^servernick":"'
使用包含雙引號的字符串處理時,單引號:
grep '^Servernick":"'
如果您可以顯示您正在解析的文件的代碼段,這將有所幫助。 – 2011-01-28 18:13:45
這個問題會更適合superuser.com或unix.stackexchange.com – 2011-01-28 18:14:32