我如何从位于 < > 和非 < > 之间的文件中获取文本:文件:
hello<world>
在<>内:世界
没有<>:你好
答案1
你的问题不够清楚。<
当>
相同的线?
<>
假设文件中一行只有一个标签,则以下命令可以完成您的工作:
$ 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
如果你想打印第一的 <
和最后的 >
, 尝试这个:
$ echo '111<aaa>222<bbb>333<ccc>444' | sed 's/^[^<]*<//; s/>[^>]*$//'
aaa>222<bbb>333<ccc