私はこの種のテーブルを持っています:
classA, s1, ss1
classA, s1, ss2
classA, s2, ss1
classB, s1, ss1
classB, s1, ss2
classC, s1, ss1
classC, s2, ss1
classC, s2, ss2
1列目の連続した値に従って、「classA」、「classB」、「classC」という3つのファイルに分割したいと思います。最初に csplit を使用してそれを行う方法を見つけようとしましたが、パターンが変更されたときではなく、指定されたパターンでのみ機能するようです。それを行う awk の方法や他のコマンドライン ツールはありますか?
[更新] 1 番目の列にも、そのエラーにつながるスラッシュがいくつかあります。例:
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)