grep命令行,linux

时间:2011-01-28 18:10:31

标签: linux grep

我正在尝试从html文件“Servernick”中隔离所有服务器名称(即sv012-cali):在下面的行代码中的“sv012-cali”我认为它的引号将其抛弃

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

html数据文件的片段“关系”:0},{“ID”:415804“,”Servernick“:”sv012-cali“,”级别“:”3“

3 个答案:

答案 0 :(得分:2)

你需要逃避报价。在bash中使用\来转义字符:

grep "^Servernick\":\""

或者将双引号括在单引号中:

grep '^servernick":"'

答案 1 :(得分:2)

处理包含双引号的字符串时使用单引号:

grep '^Servernick":"'

答案 2 :(得分: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