gpt4 book ai didi

linux - 如何提取由多行星号分隔的文件的特定部分?

转载 作者:行者123 更新时间:2023-12-03 09:58:10 24 4
gpt4 key购买 nike

我试图从由多行 * 字符分隔的文件中提取文本的不同部分。该文件的内容如下所示:

**************************
**************************
abc123
abc1234
**************************
**************************
123abc
**************************
12ab34
**************************
**************************
12345
**************************
**************************
6789
abcd
1234
**************************
**************************

例如,提取文件的第五部分的方法是什么?
第五部分包含以下行:
6789
abcd
1234

我尝试使用 grep :
grep -E -v '([^\*]*\*)' filename


命令的输出是:
abc123
abc1234
123abc
12ab34
12345
6789
abcd
1234

最佳答案

编辑:在此处添加一个更通用的解决方案。

awk '/^\*+/{if(prev!~/^\*/){count++}} count==5 && !/^\*/;{prev=$0}' Input_file



您能否尝试使用 GNU 进行跟踪、编写和测试 awk并仅显示样本。
awk -v FS="*+" -v RS="^$" '{gsub(/^\n+|\n+$/,"",$10);print $10}' Input_file

第二种解决方案:更通用的解决方案。
awk '/^\*/{count++} count==9 && $0!~/^\*/' Input_file

关于linux - 如何提取由多行星号分隔的文件的特定部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61576534/

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