ファイル名に基づいてテキストファイルをマージする

ファイル名に基づいてテキストファイルをマージする

次の形式のファイルが何百ものあります。

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

どうすればいいですか?

答え1

ファイル名の末尾にアンダースコアがなく、ディレクトリに一致するglobがない場合は、次のようになります。

for file in ????_??_??_*.txt; do
  echo cat "$file" ">>""${file%_*}.txt"
done

必要なことがわかっている場合は、該当するechoセクションと二重引用符を削除してください。>>

関連情報