2014-07-07 3 views
0

저는 다음과 같은 요구 사항이 있습니다. 리눅스를 사용하고 있습니다텍스트 파일을 하나의 텍스트 파일에 결합합니다.

나는 text1.txt ,text2.txt, text3.txt과 같은 텍스트 파일을 가지고 있습니다. 이제 하나의 최종 텍스트 파일로 결합됩니다.

text1.txt

1  
NULL  
NULL  
4 

text2.txt

1  
2  
NULL  
4 

text3.txt

a  
b  
c  
d 

내가 FOL 사용하고 lowing 명령을

paste -d ' ' text1.txt text2.txt text3.txt >> text4.txt 

내가 점점 오전 :

text4.txt

1 1 a 
2 b  
c 
4 4 d 

하지만 내가 원하는 다음

text4.txt 같은 출력

1 1 a 
NULL 2 b 
NULL NULL c 
4 4 d 

참고 : - NULL 내가 거기에 내가 내가 기대

+0

'내가 선 9 –

답변

0

사전에 positionl에 의해

덕분에 변수를 읽고있다 그래서 여기에 입력으로 다른 루프이 텍스트 4를 통과하고

공간을 의미합니다 TAB에서 기록을 분리하고 싶다면 file4.txt ...이게 뭐야?

NLINES=$(wc -l file1.txt | awk '{print $1}') 
rm -f file4.txt 
for i in $(seq 1 $NLINES); do 
    rec1=$(sed -n "$i p" file1.txt) 
    rec2=$(sed -n "$i p" file2.txt) 
    rec3=$(sed -n "$i p" file3.txt) 
    echo -e "$rec1\t$rec2\t$rec3" >> file4.txt 
done 

실제로 붙여 넣기는 "-d"없이 붙여 넣기 만하면 똑같은 결과가 나타납니다!

+0

을 잘 작동 f3' -d ''F1 F2를 붙여 넣기 오류 ... 시도하지 않았어 - 이제 작동! – user3713876

+0

부부의 말에 unexcepted 구문을 얻고있다 ... 나를 위해 – Sigismondo

+0

붙여 넣기 "-d" '가 내 요구 사항을 제공합니다. 하지만 모든 텍스트 파일에서 첫 번째 위치를 잘라야합니다. – user3713876

0

는 AWK 명령으로 동일한 달성 할 수

awk '{a[FNR]=a[FNR]$0" "}END{for(i=1;i<=length(a);i++)print a[i]}' text1.txt text2.txt text3.txt >> text4.txt 
관련 문제