3

日付で分割する必要のあるCSVファイルがあります。以下にリストされているAWKコードを使用してみました(他の場所にあります)。

awk -F"," 'NR>1 {print $0 >> ($1 ".csv"); close($1 ".csv")}' file.csv

OSXとDebianの両方のターミナルでこれを実行してみました。どちらの場合もエラーメッセージは表示されませんが(コードは正しく実行されているように見えます)、出力もありません。出力ファイルがなく、コマンドラインで応答がありません。

私の入力ファイルには、次のような最大6k行のデータがあります。

date,source,count,cost
2013-01-01,by,36,0
2013-01-01,by,42,1.37
2013-01-02,by,7,0.12
2013-01-03,by,11,4.62

私が欲しいのは、特定の日付のすべての行を含む新しいCSVファイルを作成することです。私は何を見落としていますか?

4

2 に答える 2

5

私はこれを解決しました。このスレッドのロジックに従って、コマンドで行末を確認fileし、ファイルに古いスタイルのMac行末記号が含まれていることを確認しました。入力CSVファイルをTextWranglerで開き、Unixスタイルの行末で再度保存しました。それを実行すると、awk上記のコマンドは期待どおりに機能しました。日付別に分類された63個の新しいCSVファイルを作成するのに約5秒かかりました。

于 2013-03-15T20:07:59.253 に答える
0

「;」を含むログファイルの情報を取得する場合 私が使用するセパレーター:

grep "END SESSION" filename.log | cut -d";" -f2

どこ

  -d, --delimiter=DELIM   use DELIM instead of TAB for field delimiter
  -f, --fields=LIST       select only these fields;  also print any line
                          that contains no delimiter character, unless
                          the -s option is specified
于 2018-06-28T15:21:27.793 に答える