我正在尝试学习一些终端命令,并看到这个抓取最新谷歌涂鸦的链接并将其复制到剪贴板:
$ curl http://www.google.com/doodles#oodles/archive |
grep -A5 'latest-doodle on' | grep 'img src' |
sed s/.*'<img src="\/\/'/''/ | sed s/'" alt=".*'/''/ | pbcopy
我尝试做类似的事情 - 这个命令应该将当天的单词复制到剪贴板中:
curl "http://www.merriam-webster.com/word-of-the-day/" |
grep -A5 'main_entry_word' | sed s/.*'<strong class="main_entry_word">'/''/ |
sed s/'</\strong>.*'/''/ | pbcopy
我收到一条错误消息:
sed: 1: "s/</\strong>.*//": bad flag in substitute command: '/'
我不确定我在做什么,我在其他网站上尝试了一些教程,但我无法理解。我认为主要的问题是我不明白大多数'sed'命令的作用。
有人能帮助我吗?
答案 0 :(得分:2)
如果我理解您的要求,您希望在<strong...class="...">
和</strong>
之间提取文字,我会使用单个grep来保存您的grep|grep|sed|sed...
:
也使用curl的-s
选项:
kent$ curl -s "link"|grep -Po '<strong\s+class="main_entry_word">\K.*?(?=</strong>)'
输出:
palmy
答案 1 :(得分:1)
sed s/'<\/strong>.*'/''/
或
sed s@'</strong>.*'@''@