나는 다음을 수행하려고합니다 :
- 파일 목록을 반복합니다.
- 각 파일을 편집하고 "잘린" 파일을 출력합니다.
- 잘린 각 파일을 조립식 마스터 파일에 수평으로 차례로 결합합니다.
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