我试图从下面的行代码中的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