我有这个文本文件
AAAA
1234
title example
Lorem Ipsum
FF
AAAA
1234
title example
€330 - Roma
FF
我只想从此文件中提取以下 txt:
START WITH AAAA
HAS Euro SYmbol
END WITH FF
在这种情况下我只想匹配那个
AAAA
1234
title example
€330 - Roma
FF
我尝试了不同的解决方案
我用了
sed -e '/AAAAs/,/europ/,/FF/!d' testfile.txt
但它提取 AAAA 和 FF 之间的所有 txet
我该如何解决它?
感谢帮助
EDIT:
Euro line 和 FF 之间可能有一些文字。不知道有多少行..
AAAA
1234
title example
€330 - Roma
Some text with \n, comma symbol etc etc
FF
我想提取AA和FF之间的文本
使用 sed:
sed -n '/^AAAA/{:a;N;/\nFF/!ba; /€/p}' file
怎么运行的:
-
/^AAAA/
: 从以下行开始AAAA
-
:a
: label a
对于即将到来的循环
-
N
:将下一行添加到模式空间
-
/\nFF/!
: 如果换行符后面跟着FF
没有找到,
-
:ba
: 循环到a
用于将下一行添加到模式空间的标签
-
/€/p
:输出如果€
被发现
Edit:
正如 @potong 在评论中所建议的,使用 GNU sed 您还可以使用M
在多行模式下匹配正则表达式的命令:
sed -n '/^AAAA/{:a;N;/^FF/M!ba; /€/p}' file
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)