ローカルディレクトリには、次boutique-*_20160116hh0000.csv
のようなファイル名を持つ672個のファイルがあります。general-tgbt_1_20160116hh0000.csv
boutique-a13_15_20160116060000.csv
boutique-a16_18_20160116070000.csv
boutique-a05_7_20160116190000.csv
Bashで次のコマンドを実行します。
(for i in `ls -1 | sort`; do cat $i | while read line; do echo "${i%%_2016*}," $line; done ; done;) > c.csv
無限ループが発生し、ファイルc.csv
サイズが増加します。
何らかの理由?
c.csv
私のファイルも結果に停止したようです。
`ls -1 | sort`
ところで、このような行動が正しいのでしょうか?
最初のコメントを受けてから別のテストを試しました。 672 の代わりに 4 つのファイルのみを保存します116020000.csv)そして私のコマンドはうまくいきます。
ありがとう
答え1
結果を他の場所に置くことをお勧めします。出力はls
ソートされていますが、まだ必要ありません。スクリプトを次のように減らします。
for i in *.csv ; do
while read line ; do
echo "${i%%_2016*}," $line
done <$i
done >/tmp/c.csv