csvファイルのファイル名とサイズをキャプチャし、ファイルにヘッダーを追加するシェルスクリプト

csvファイルのファイル名とサイズをキャプチャし、ファイルにヘッダーを追加するシェルスクリプト

特定のフォルダに多くのzipファイルがあります。毎日ファイル名とファイルサイズをCSV形式でキャプチャし、crontabに入れて毎日報告し、各レポートにメールで送信しようとします。

ファイルの場所/somedirectory/archive/test:

-rw-rw-r--+ 1 AAAA AAAA 9.3M May  30 17:09 XXXXX_20140530_0401_28.txt.gz
-rw-rw-r--+ 1 AAAA AAAA 9.3M May  30 17:09 XXXXX_20140530_0401_29.txt.gz
-rw-rw-r--+ 1 AAAA AAAA 9.3M May  31 17:09 XXXXX_20140531_0401_01.txt.gz

それでは、毎日実行して毎日準備するのと同じCSVをキャプチャするcronjobを作成したいと思います。

test30052014.csv:

"File Name","size","date"
"XXXXX_20140530_0401_28.txt.gz", "9.3","May 30"
"XXXXX_20140530_0401_29.txt.gz", "9.3","May 30"

test31052014.csv:

"File Name","size","date"
"XXXXX_20140531_0401_01.txt.gz", "9.3","May 31"

ベストアンサー1

これを行う簡単な方法はスクリプトを書くことです。

#!/bin/bash    
echo "File Name,Size,date" > /tmp/output_file
ls -l --time-style=+%m.%d.%Y /path/to/file |grep -v "^total|^d"|awk '{print $NF","$4","$5 }'  >> /tmp/output_file

これにより、lsで始まる合計が削除され、ディレクトリは除外されます。

おすすめ記事