Bash 使用sed或awk选择
我试图选择html文件中两个标记之间的行。我尝试过使用sed和awk,但我认为我逃避某些角色的方式存在问题。我见过一些类似的问题和答案,但给出的例子很简单,没有特殊的字符。我想我的逃跑才是问题所在。我需要两条线之间的线Bash 使用sed或awk选择,bash,awk,sed,escaping,Bash,Awk,Sed,Escaping,我试图选择html文件中两个标记之间的行。我尝试过使用sed和awk,但我认为我逃避某些角色的方式存在问题。我见过一些类似的问题和答案,但给出的例子很简单,没有特殊的字符。我想我的逃跑才是问题所在。我需要两条线之间的线 及 块内没有其他div,并且块内有多条线 我是否需要转义字符和?如下所示 sed -n -e '/^\<div class=\"bread crumb\"\>$/,/^\<\/div\>$/{ /^\<div class=\"bread crum
及
块内没有其他div,并且块内有多条线
我是否需要转义字符
和?
如下所示
sed -n -e '/^\<div class=\"bread crumb\"\>$/,/^\<\/div\>$/{ /^\<div class=\"bread crumb\">$/d; /^\<\/div>$/d; p; }'
sed-n-e'/^\$/,/^\$/{/^\$/d;/^\$/d;p;}'
我的awk尝试:
awk '/\<div class=\"bread crumb\"\>/{flag=1;next}/\<\/div\>/{flag=0}flag'
awk'/\/{flag=1;next}/\/{flag=0}flag'
您应该为该作业使用html解析器
如果您仍然想使用sed执行此操作,请不要转义用于的
试试这个:
sed -ne '/<div class="bread crumb">/,/<\/div>/{//!p;}' file
sed-ne'//,//{/!p;}文件
//!p
part输出除与地址模式匹配的行之外的所有块。您应该使用html解析器来完成该任务
如果您仍然想使用sed执行此操作,请不要转义用于的
试试这个:
sed -ne '/<div class="bread crumb">/,/<\/div>/{//!p;}' file
sed-ne'//,//{/!p;}文件
//!p
部分输出除与地址模式匹配的行之外的所有块。实际上,您只需在
中转义/
,其余的就可以了
sed -n '/<div class="bread crumb">/,/<\/div>/{//!p}'
sed-n'//,/{/!p}'
实际上,您只需要在
中退出/
,其余的就可以了
sed -n '/<div class="bread crumb">/,/<\/div>/{//!p}'
sed-n'//,/{/!p}'
只需在awk中使用字符串匹配:
awk '$0=="</div>"{f=0} f{print} $0=="<div class=\"bread crumb\">"{f=1} ' file
awk'$0=='{f=0}f{print}$0=='{f=1}'文件
只需在awk中使用字符串匹配:
awk '$0=="</div>"{f=0} f{print} $0=="<div class=\"bread crumb\">"{f=1} ' file
awk'$0=='{f=0}f{print}$0=='{f=1}'文件
虽然sed
和awk
可能能够完成某些输入的工作,但使用非HTML感知工具解析HTML被认为是不好的做法。您应该看一看xpath
,它是一个专门用于解析HTML/XML文件的工具,发布初始HTML片段和预期的结果韧带链接sed
和awk
可能可以为某些输入做这项工作,但使用不支持HTML的工具解析HTML被认为是不好的做法。您应该了解一下xpath
,它是一个专门用于解析HTML/XML文件的工具,用于发布初始HTML片段和预期的resultobligatory链接