根据文件名合并文本文件

根据文件名合并文本文件

我有数百个具有以下格式的文件:

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部分以及周围的引号。>>

相关内容