
フォルダには多くのCSVがあります。順番に組み合わせたいです。
私のCSVファイルは
state_1_result_6.csv,
state_1_result_8.csv,
state_1_result_10.csv,
state_1_result_12.csv.....
各csvにはヘッダーなしで1行があるため、aの内容はstate_i_result.csv
次のようになります。
1,2,3,69,19,1,2,6,10,12,30,28
最初の行はstate_1_result_6.csv、2番目の行はstate_1_result_8.csvなどの順序で結合したいと思います。
私は前に試しました
cat state*.csv > final.csv
しかし、順番にマージされません。
答え1
これでわかったので、インデックスリストを繰り返してみてください。
for i in 6 8 10 12;
do
cat state_1_result_${i}.csv >> final.csv
done
Cループを使用することもできます。
for ((i=6; i<=12; i+=2))
答え2
ファイル拡張子の直前にインデックスがあるので、良いです。
cat state*.csv > final.csv
ASCII文字でソートすることを検討してください。つまり、ソートされた{6、8、10、12}は{10、12、6、8}になります。
マニュアルページからエルエス、バージョン番号でソートする -v オプションがあります。これがまさに必要なものです。だからあなたは使用することができます
cat `ls -v | grep .csv` > final.csv
これがディレクトリ内の唯一のcsvファイルの場合。
答え3
またはもっと簡単に
ls -v *.csv | xargs cat >> final.csv
-v バージョン番号でソート