【发布时间】:2017-07-19 12:11:15
【问题描述】:
我有一个包含以下内容的文件:
(Item)
(Values)
blabla
blabla
(StopValues)
(Item)
(Values)
hello
hello
(StopValues)
我想将其拆分为多个文件,以便一个文件始终包含从(Item) 到(StopValues) 的内容(包括这两个标签)。此外,由于我必须进一步使用这些文件并使用 mktemp,因此我想在创建每个文件名时将其保存在一个数组中。
为了拆分它们,我使用了 awk 的方法:
awk '/(StopValues)/{n++}{print >"out" n ".txt" }' mainfile.txt
这里的第一个问题,当提供“一组”数据时,我仍然得到 2 个新的 txt 文件,一个只包含 (StopValues) 标签,另一个只包含这个标签。
第二个问题,我想用mktemp 创建文件,而不是自己命名它们并且我需要它们在一个数组中,如何在 awk 循环中动态创建新文件并将它们的名称保存到数组中?
【问题讨论】:
-
一个数组,你的意思是 awk 数组还是 bash 数组?
-
我的意思是一个 bash 数组
-
您的文件可以有多少个部分/块?
-
那没有定义,我这样称呼我的脚本
cat *.txt | ./script并且来自 cat 的所有内容都写在一个文件中。当我像这样对所有文件的 cat 进行管道传输时,是否有可能查看哪些内容来自哪个“cat(ed)文件”,分别将其拆分并直接将其作为数组获取?因为如果可能的话,我所做的一切都不再需要了 -
好的,一切都清楚了,发布我的答案。