我有这种表:
classA, s1, ss1
classA, s1, ss2
classA, s2, ss1
classB, s1, ss1
classB, s1, ss2
classC, s1, ss1
classC, s2, ss1
classC, s2, ss2
根据第一列中的连续值,我想将其拆分为 3 个名为“classA”、“classB”和“classC”的文件。我首先尝试找到一种使用 csplit 的方法,但它似乎只适用于指定的模式,而不是模式改变时。是否有任何 awk 方式或任何其他命令行工具可以做到这一点?
[更新] 我的第一列中还有一些导致该错误的斜线,例如:
classA, s1, ss1
classA, s1, ss2
classA, s2, ss1
classB, s1, ss1
classB, s1, ss2
classC, s1, ss1
classC, s2, ss1
classC, s2, ss2
classA/classA.1/classA.2, s1, ss1
classA/classA.1/classA.2, s1, ss2
当我运行命令时:
awk -F, '{ print $0 > $1}' infile
它在“classC”之前一直有效,但后来我遇到了那个错误,因为我猜它会将“/”解释为路径:
fatal: can't redirect to `classA/classA.1/classA.2' (No such file or directory)