이것이 바로 그 장면이다. 나는 File1과 File2를 가지고 있고 File3에서 결과를 얻고 싶습니다. 저는 Linux를 처음 접했지만 지금까지 sort, diff 및 comm을 사용해 보았습니다. 그러나 지금까지는 운이 좋지 않았습니다.
File1.txt File2.txt > File3.txt
파일 1.txt
RB0009 8,89
RB0010 5,67
RB0015 4,32
RB0027 6,56
파일 2.txt
RB0009 8,89
RB0010 5,67
RB0015 4,32
RB0027 6,56
RB0033 9,78
파일 3.txt
RB0009 700111i 8,89
RB0010 700092i 5,67
RB0015 700148i 4,32
RB0027 700123i 6,56
도움을 주셔서 감사합니다.
답변1
아래 내 의견에 따르면 질문을 오해 한 것 같습니다. 이것~해야 한다예상되는 출력을 제공합니다.
paste File1.txt File2.txt | awk '{print $1"\t" "700" NR "i" "\t" $2}' > File3.txt
오해는 다음과 같습니다.
File1.txt
제가 올바르게 이해했다면 두 개의 입력 파일( 및 ) 이 있고 두 입력 파일의 정렬 및 결합된 내용을 포함하는 출력 파일( )을 File2.txt
생성하시겠습니까 ?File3.txt
각 파일의 첫 번째 열이 고유 식별자(예: 등)이고 이러한 식별자를 일치시켜 두 파일을 결합하려는 경우 RB0009
Linux RB0010
에서 join
이 명령을 사용할 수 있습니다.
다음은 원하는 작업을 수행하는 명령의 예입니다.
join -t $'\t' -a 1 -a 2 -o auto <(sort File1.txt) <(sort File2.txt) > File3.txt
명령 분석:
join
두 파일을 연결하는 데 사용하는 명령입니다.-t $'\t'
필드 구분 기호로join
탭 문자( )를 사용함을 나타냅니다 .\t
-a 1 -a 2
join
일치하는 항목이 없더라도 두 파일의 모든 행이 포함됨을 나타냅니다 .-o auto
join
탭으로 구분된 두 파일의 필드를 출력 하도록 지시합니다 .<(sort File1.txt)
프로세스 대체 이며 각 파일<(sort File2.txt)
의 내용을join
.join
>
명령 출력을join
로 리디렉션합니다File3.txt
.
결과에는 File3.txt
첫 번째 열(고유 식별자)을 기준으로 정렬된 두 입력 파일의 결합된 콘텐츠가 포함되어야 합니다.