不要。使用HTML解析器。例如,Python的BeautifulSoup易于使用,并且可以非常轻松地完成此操作。
也就是说,请记住grep适用于行。该模式匹配行,而不是整个字符串。
你可以使用什么是-A赛后还输出线:
grep -A2 -E -m 1 '
应该输出:
Diplo - Justin Bieber - Skrillex
Where Are U Now
然后,您可以通过管道得到它的最后或倒数第二行到tail:
$ grep -A2 -E -m 1 '
Where Are U Now
$ grep -A2 -E -m 1 '
Diplo - Justin Bieber - Skrillex
然后用去掉HTML:
$ grep -A2 -E -m 1 '
Where Are U Now
$ grep -A2 -E -m 1 '
Diplo - Justin Bieber - Skrillex
但正如所说,这是善变的,有可能打破,而不是很漂亮。下面是与BeautifulSoup相同,顺便说一句:
html = '''
Blah text
Diplo - Justin Bieber - Skrillex
Where Are U Now
'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
for track in soup.find_all(class_='tracklistInfo'):
print(track.find_all('p')[0].text)
print(track.find_all('p')[1].text)
这也适用于的tracklistInfo多行 - 补充说,在shell命令需要更多的工作;-)