在shell脚本中使用cut

时间:2010-11-14 10:04:48

标签: shell unix

我有一个文件名foo。该文件包含一些文本(如下所示)。你能告诉我怎样才能得到“我没有创建主页”的字样。变成一个变量。我正在使用命令variable='cat foo | cut -d ">" -f 3'。它输出“我还没有创建主页。”有很多新的线条。如果您能告诉我一种获取字符串的方法,请告诉我没有任何换行符。非常感谢。

<HTML>

<HEAD> 
<META HTTP-EQUIV="Content-Type" CONTENT="text/html>
<META HTTP-EQUIV="resource-type" CONTENT="document">
</HEAD>

<BODY>

I have not created a home page.

</BODY>

</HTML>

3 个答案:

答案 0 :(得分:2)

cut是错误的工具。使用awk:

cat >> _.awk << "EOF"
/<BODY>/               { found=1; next }
/<\/BODY>/ && found==1 { exit 0 }
found==1               { if ($1) print $0 }
EOF

awk -f _.awk foo

理想情况下,您应该使用真正的XML解析器,如DOM解析器

答案 1 :(得分:1)

cat foo | grep "^[^<]"。要分配变量:

v=`cat foo | grep "^[^<]"`

答案 2 :(得分:1)

{ xmlstarlet sel -N html='http://www.w3.org/1999/xhtml' -t -m //html:body -v . <(tidy -asxml input.html) | tr -d '\n' ; } 2> /dev/null