gpt4 book ai didi

awk - 再次使用特定的行来匹配模式

转载 作者:行者123 更新时间:2023-12-04 18:16:18 27 4
gpt4 key购买 nike

假设我有文件:

1Alorem
2ipsuml
3oremip
4sumZAl
5oremip
6sumlor
7emZips

我想将文本从包含 A 的行拆分为包含 Z 与范围匹配的行:
/A/,/Z/ {
print > "rangeX.txt"
}

我希望这个特定的输入给我 2 个文件:
1Alorem
2ipsuml
3oremip
4sumZAl


4sumZAl
5oremip
6sumlor
7emZips

问题是第 4 行仅在 ad 匹配为范围结束时才被采用,但第 2 范围永远不会开始,因为其他行中没有 A。

有没有办法尝试再次将第 4 行与所有模式匹配或告诉 awk 它必须开始新的范围?

谢谢

最佳答案

正如 Arne 指出的,第二部分不会被捕捉到,而是当前的模式。这是没有范围的替代方案。

awk 'p==0 {p= (~/A/)>0;filenr++} p==1 {print > "range"filenr".txt"; p= (~/Z/)==0; if(!p && ~/A/){filenr++;;p=1; print > "range"filenr".txt"}}' test.txt

它还处理两个以上的部分

关于awk - 再次使用特定的行来匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11626963/

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