次の形式のファイルが何百もあります。
2013_01_19_xyxyxyx.txt
2013_01_19_xyxyxyx.txt
2014_03_21_xyxyxyx.txt
2014_03_21_zxzxzxz.txt
2014_03_22_abababa.txt
2014_03_22_cbcbcbc.txt
etc.
ファイルを次の場所にマージしたいと思います。
2013_01_19.txt
2014_03_21.txt
2014_03_22.txt
どうすればこれを達成できますか?
ファイル名の最後の部分にアンダースコアがない(そして、globに一致するディレクトリに他に何もない)場合、以下は機能するはずです。
for file in ????_??_??_*.txt; do
echo cat "$file" ">>""${file%_*}.txt"
done
必要なものが確実に揃ったら、echo
の部分と>>
の前後の引用符を削除します。