gpt4 book ai didi

linux - 多次访问 UNIX 中特定单词之间的文本

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:26 24 4
gpt4 key购买 nike

如果文件是这样的:

ram_file
abc
123
end_file
tony_file
xyz
456
end_file
bravo_file
uvw
789
end_file

现在我想同时访问ram_fileend_filetony_fileend_file以及bravo_fileend_file之间的文本。我尝试了 sed 命令,但我不知道如何在此指定 *_file

提前致谢

最佳答案

这个awk应该可以为你完成这项工作。

此解决方案威胁将 end_file 作为 block 结束,并将所有其他 xxxx_file 作为 block 开始。
它不会打印某些 block 之间的文本,就像我的示例中的不打印

awk '/end_file/{f=0} f; /_file/ && !/end_file/ {f=1}' file
abc
123
xyz
456
uvw
789

cat file
ram_file
abc
123
end_file
do not print this
tony_file
xyz
456
end_file
nor this data
bravo_file
uvw
789
end_file
<小时/>

如果您喜欢某些格式,可以使用 awk 轻松完成

awk -F_ '/end_file/{printf (f?RS:"");f=0} f; /file/ && !/end_file/ {f=1;print "-Block-"++c"--> "$1}' file
-Block-1--> ram
abc
123

-Block-2--> tony
xyz
456

-Block-3--> bravo
uvw
789

关于linux - 多次访问 UNIX 中特定单词之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22509380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com