파일을 반복하고 수평으로 결합

파일을 반복하고 수평으로 결합

나는 다음을 수행하려고합니다 :

  1. 파일 목록을 반복합니다.
  2. 각 파일을 편집하고 "잘린" 파일을 출력합니다.
  3. 잘린 각 파일을 조립식 마스터 파일에 수평으로 차례로 결합합니다.

1단계와 2단계는 작동하지만 3단계는 작동하지 않습니다.

주요 파일:

Col1   Col2
A       1
B       1
C       2

파일 S1의 파일 자르기:

S1.Col3    S1.Col4
0            1
1            1
1            1

S1과 S2가 MASTER에 합류한 후 원하는 출력은 다음과 같습니다.

Col1   Col2   S1.Col3   S1.Col4   S2.Col3   S2.Col4
A       1       0         1          0        1
B       1       1         1          1        0
C       2       1         1          0        0

각 루프 후에 다음과 같은 작업을 실행하려고 합니다.

paste MASTER.txt S1.txt > MASTER.txt

그런데 위 파일 대신 마지막 S 파일의 데이터만 포함된 파일이 나옵니다. 출력 없이 루프 외부에서 실행해 보았는데 모든 것이 잘 작동했습니다. 답변을 보내주셔서 미리 감사드립니다.

이 작업을 수행하기 위해 for 루프를 매우 간단하게 분석했습니다.

for FILE in FILELIST
do
    cut -f4,6 $FILE > ${FILE}_trimmed.txt
    paste MASTER.txt ${FILE}_trimmed.txt > MASTER.txt
done

답변1

댓글에서 이 질문에 답변해 주신 1_CR에게 감사드립니다.

> MASTER.txt붙여넣기를 통해 실제로 수평 결합이 완료되기 전에 파일을 자릅니다. 대답은 임시 파일(예: MASTER2.txt)로 출력한 다음 이름을 올바른 파일 이름으로 바꾸는 것입니다(mv 명령 사용).

내 이전 코드:

paste MASTER.txt ${FILE}_trimmed.txt > MASTER.txt

고정 코드:

paste MASTER.txt ${FILE}_trimmed.txt > MASTER2.txt && mv MASTER2.txt MASTER.txt

관련 정보