file.txt
我正在尝试从如下文件中获取一行:
>This is line 1.</li>
>This is line 2.</li>
>This is line 3.</li>
>This is line 4.</li>
我需要获取以 开头>
并以 结尾的内容</li>
,这样输出将是This is line 1.
This is line 2.
等等。我在论坛上研究过这个问题,但没有找到解决方案。这解决方案也没有用。
我最终需要从网页中获取一些行。因此,首先我将curl webpage
使用 grep 命令来 grep 以 开头>
并以 结尾的行</li>
。
谢谢。!
答案1
这应该足够了:
grep '^>.*</li>$' input-file
并^
确保$
这些部件锚定分别位于行的开始和结束处。
您还可以执行以下操作:
grep -x '>.*</li>' input-file
-x
寻找完全匹配:整行应该与模式匹配(这意味着^
并$
环绕模式)。
答案2
这是输入文件:
$ cat /tmp/tmp.txt
>This is line 1.</li>
invalid line 1
>This is line 2.</li>
>This is line 3.</li>
invalid line 2
>This is line 4.</li>
last invalid line
使用grep
和awk
提取所需的字符串:
$ cat /tmp/tmp.txt | grep -E '>*</li>' | awk -F\> '{ print $2 }' | awk -F\< '{ print $1 }'
This is line 1.
This is line 2.
This is line 3.
This is line 4.