如何解析子字符串?

时间:2019-03-11 20:54:45

标签: bash

我想在其他两个子字符串之间获取一个子字符串。

这是字符串:

<tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="FileabcName123One/">FileabcName123One/</a></td><td align="right">08-Mar-2019 19:53  </td><td align="right">  - </td><td>&nbsp;</td></tr>

我想解析出子字符串'href =“'和'/”>'之间的子字符串:

FileabcName123One

2 个答案:

答案 0 :(得分:1)

假设输入字符串存储在INPUT环境变量中,则可以在parameter expansion中使用#%从值中删除前缀和后缀:

$ INPUT='<tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="FileabcName123One/">FileabcName123One/</a></td><td align="right">08-Mar-2019 19:53  </td><td align="right">  - </td><td>&nbsp;</td></tr>'

$ TEMP=${INPUT#*href=\"}
$ OUTPUT=${TEMP%%/\"*}

$ echo $OUTPUT
FileabcName123One

答案 1 :(得分:0)

sed 's_.*href="\(.*\)/">.*'_\\1_ <INPUTFILE