Paul Taran Asked: 2020-11-14 00:56:55 +0800 CST2020-11-14 00:56:55 +0800 CST 2020-11-14 00:56:55 +0800 CST 如何在 <> (正则表达式)中将文本从文件中取出 772 如何从 < > 和非文件之间的文件中获取文本:文件: hello<world> <>内:世界 没有<>:你好 text bash files 1 个回答 Voted Best Answer FedKad 2020-11-14T01:32:49+08:002020-11-14T01:32:49+08:00 你的问题不够清楚。当有多个字符<或>在同一行时会发生什么? 假设<>文件中的一行只有一个标签,以下应该可以完成您的工作: $ sed 's/<.*>//' your_file 以上将删除文件中以开头和结尾的所有字符串,并将打印剩余部分。<> $ sed 's/^.*<//; s/>.*$//' your_file 以上将删除所有字符串,直到最后 <一行。之后,它将删除从行中第一个 >开始的所有字符串。例如: $ echo '111<aaa>222<bbb>333<ccc>444' | sed 's/^.*<//; s/>.*$//' ccc 如果你想找到第一个“标签”,那么试试这个: $ echo '111<aaa>222<bbb>333<ccc>444' | sed 's/^[^<]*<//; s/>.*$//' aaa 如果你想打印first <和last >之间的字符串,试试这个: $ echo '111<aaa>222<bbb>333<ccc>444' | sed 's/^[^<]*<//; s/>[^>]*$//' aaa>222<bbb>333<ccc
你的问题不够清楚。当有多个字符
<
或>
在同一行时会发生什么?假设
<>
文件中的一行只有一个标签,以下应该可以完成您的工作:以上将删除文件中以开头和结尾的所有字符串,并将打印剩余部分。
<
>
以上将删除所有字符串,直到最后
<
一行。之后,它将删除从行中第一个>
开始的所有字符串。例如:如果你想找到第一个“标签”,那么试试这个:
如果你想打印first
<
和last>
之间的字符串,试试这个: