如何grep一个序列并创建一个不同的文件?

问题描述 投票:0回答:1

我有一个来自我之前计算的输出(geom_dist_output)文件,其中包含“Modo:1”,“Modo:2”,“Modo:3”到“Modo:90”。 “Modo:1”和“Modo:2”之间有几点,所以要grep我正在使用的数据:

对于Mode-1;

grep -A100000 "Modo:    1"  geom_dist_output | grep -B100000 "Modo:    2" | egrep -v "Modo:    2" > Mode-1

对于模式-2;

grep -A100000 "Modo:    2"  geom_dist_output | grep -B100000 "Modo:    3" | egrep -v "Modo:    3" > Mode-2

同样高达90。

是否有任何方式或顺序,我可以grep不同的模式-i(i = 1,2..90)并创建不同的文件。

bash grep seq
1个回答
0
投票

如果你想要一个Mode- $ i:

sed -n "/Modo:    $i/,/Modo:/{/Modo:/b;p}" geom_dist_output >Mode-$i

在这里sed打印从Modo: $i到以下Modo:的线,除了Modo:线。

如果你想同时拥有所有Mode-1..90文件,并且你有csplit--suppress-matched选项:

csplit -fMode- --suppress-matched geom_dist_output /Modo:/ '{*}'
© www.soinside.com 2019 - 2024. All rights reserved.