상위 텍스트 파일에서 시작하여 텍스트 파일을 생성하는 방법

상위 텍스트 파일에서 시작하여 텍스트 파일을 생성하는 방법

텍스트 파일 목록이 있는데 각 텍스트 파일에는 다음과 같은 숫자가 포함되어 있습니다.

 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5 

텍스트 파일의 숫자는 쉼표로 구분됩니다.

각 상위 파일에서 시작하여 6개의 파일을 생성하는 방법(bash 사용) 6개의 새 파일 각각에는 다음과 같은 숫자 집합이 포함되어 있습니다.

file0.txt contain 0 0 0 0 0 0 0 0 0 0
file1.txt contain 1 1 1 1 1 1 1 1 1 1
file2.txt contain 2 2 2 2 2 2 2 2 2 2
file3.txt contain 3 3 3 3 3 3 3 3 3 3
file4.txt contain 4 4 4 4 4 4 4 4 4 4
file5.txt contain 5 5 5 5 5 5 5 5 5 5

답변1

sed를 사용한 한 줄 답변

sed 's/,/\n/g' InputFile.txt |while read line ; do     echo -n "$line ">>file$line.txt ;  done

또는 셸에 있을 때 여러 줄:

sed 's/,/\n/g' InputFile.txt |while read line
do 
    echo -n "$line ">>file$line.txt
done

답변2

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 ...

관련 정보