Для этого хорошо подходит Ruby:
ruby -e '
ARGV.each do |filename|
data = File.read(filename).strip.split(",")
groups = data.group_by {|n| n}
groups.each_pair do |n, nums|
# you don't really say what your input filenames look like
# I will assume they end with ".txt"
f = filename.sub(/\.txt$/, "#{n}.txt")
File.write(f, nums.join(" ") + "\n"}
end
end
' fileA.txt fileB.txt ...