Bash 用于使用具有修复模式的结构化文件解析每第 n 次出现的文件
Bash for file parsing every nth occurance with a structured file having fix pattern
我有一个大文件,每个实例的起始模式都是 END(快照),如何编写可以在每个第 n 个实例写入的新文件。例如每第 2 个快照 [1,3,5,..] 或每第 25 个快照 [1, 25, 50, 75, 100, ..],文件包含快照 [1,2,3,4,5...1000]使用以下示例模式。
示例:
END
qweqweq
qweqweq
qweqwe
END
typowoeri
ertpoietp
operitope
END
retorter
erteteert
ewrtert
我要
END
qweqweq
qweqweq
qweqwe
END
retorter
erteteert
ewrtert
awk '/END/{i++}{print > "file."i}' file
我使用上面的代码将文件拆分成单独的文件。我有 3 个快照,我可以获得 3 个单独的文件。但是我想要一个包含每 2 个快照的单个文件?
你或许可以使用这个 awk 为每个不能被 2
整除的 END
块打印行:
awk '/^END$/{++n} n%2' file
END
qweqweq
qweqweq
qweqwe
END
retorter
erteteert
ewrtert
我有一个大文件,每个实例的起始模式都是 END(快照),如何编写可以在每个第 n 个实例写入的新文件。例如每第 2 个快照 [1,3,5,..] 或每第 25 个快照 [1, 25, 50, 75, 100, ..],文件包含快照 [1,2,3,4,5...1000]使用以下示例模式。
示例:
END
qweqweq
qweqweq
qweqwe
END
typowoeri
ertpoietp
operitope
END
retorter
erteteert
ewrtert
我要
END
qweqweq
qweqweq
qweqwe
END
retorter
erteteert
ewrtert
awk '/END/{i++}{print > "file."i}' file
我使用上面的代码将文件拆分成单独的文件。我有 3 个快照,我可以获得 3 个单独的文件。但是我想要一个包含每 2 个快照的单个文件?
你或许可以使用这个 awk 为每个不能被 2
整除的 END
块打印行:
awk '/^END$/{++n} n%2' file
END
qweqweq
qweqweq
qweqwe
END
retorter
erteteert
ewrtert