使用 grep 查找以预定义字符开始和结束的一行

使用 grep 查找以预定义字符开始和结束的一行

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

使用grepawk提取所需的字符串:

$ 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.

相关内容