私はこのようになり、非常に大きなCSVファイル、input.csv
、持っている:AWK:フィールドにファイル名を異なる使用して分割ファイル
https://www.youtube.com/watch?v=9t5V_sMVN5I, 0.66, 0.7, 89
https://www.youtube.com/watch?v=9t5V_sMVN5I, 0.56, 0.98, 87
https://www.youtube.com/watch?v=9t5V_sMVN5I, 0.66, 0.7, 89
https://www.youtube.com/watch?v=b7kKTSVbfdA, 0.56, 0.98, 87
https://www.youtube.com/watch?v=b7kKTSVbfdA, 0.66, 0.7, 89
https://www.youtube.com/watch?v=b7kKTSVbfdA, 0.56, 0.98, 87
https://www.youtube.com/watch?v=b7kKTSVbfdA, 0.66, 0.7, 89
を私は内容(すべて列)のを保存しようとしていますこのファイルは、最初の列のURLに基づいて別々のファイルに格納されます。
したがって、上記のスニペットの出力は二つのファイルのようになります。最初の列に基づいて、このファイルを分割するには
https://www.youtube.com/watch?v=9t5V_sMVN5I, 0.66, 0.7, 89
https://www.youtube.com/watch?v=9t5V_sMVN5I, 0.56, 0.98, 87
https://www.youtube.com/watch?v=9t5V_sMVN5I, 0.66, 0.7, 89
と
https://www.youtube.com/watch?v=b7kKTSVbfdA, 0.56, 0.98, 87
https://www.youtube.com/watch?v=b7kKTSVbfdA, 0.66, 0.7, 89
https://www.youtube.com/watch?v=b7kKTSVbfdA, 0.56, 0.98, 87
https://www.youtube.com/watch?v=b7kKTSVbfdA, 0.66, 0.7, 89
、私はこのようにawkのを使用しています:
awk -F, '{print >> ($1".csv")}' input.csv
ただし、ファイルベースに保存できませんこのエラーのためURLフィールド上編:ファイル名としてURL形式の文字列を使用してファイルを保存する
awk: cmd. line:1: (FILENAME=input.csv FNR=1) fatal: can't redirect to ` https://www.youtube.com/watch?v=9t5V_sMVN5I.csv' (No such file or directory)
は明らかにいくつかのエラーの原因となっています。多くの '/'がファイルパスの問題を引き起こしているに違いありません。
awkを使用してカラム1($ 1)に基づいて内容を保存する方法はありますか?そのような出力ファイルの名前は、おそらく番号1のようなシーケンスに従います。もう1つの選択肢は、すべてのURLをいくつかの一意の識別子に置き換え、それを分割することですが、私はこれをまだスクリプト化できませんでした。
助けていただけたら幸いです!
@Sundeep perfect!私は、awkコマンドの中にネストされた文字列をどのように分割するか分かりませんでした。私はそれを受け入れることができるようにこれを答えとして追加してください! – AruniRC