안녕하세요. 데이터가 포함된 두 개의 파일(file1)이 있습니다.
4,abc
3,xyz
5,fut
6,gfd
파일 2:
gfd,2.3
xyz,4.5
abc,6.7
fut,3.2
Linux 스크립트 명령을 사용하여 file3을 출력 파일로 생성하고 싶습니다.
4,6.7
3,4.5
5,3.2
6,2.3
FR=NFR과 같은 awk 스크립트를 사용하여 이를 수행하는 방법
답변1
그리고 join
:
join -t, -1 2 -2 1 -o 1.1,2.2 <(sort -t, -k2 file1) <(sort -t, -k1 file2)
-t,
구분 기호를 로 설정합니다,
.-1 2
첫 번째 파일 연결 필드는 두 번째입니다.-2 1
두 번째 파일 연결 필드가 첫 번째입니다.-o 1.1,2.2
출력 형식<(sort ...)
조인에는 조인 필드에 정렬된 입력 파일이 필요합니다.
답변2
그리고 awk
:
script.awk:
FNR==NR{
var[$2]=$1
}
FNR!=NR{
print(var[$1]","$2)
}
호출 스크립트
awk -F, -f script.awk file1 file2
답변3
awk oneliner와 유사합니다:
awk -F"," 'FNR==NR{var[$2]=$1;next;}{print var[$1]FS$2}' file1 file2
산출:
$ awk -F"," 'FNR==NR{var[$2]=$1;next;}{print var[$1]FS$2}' file1.txt file2.txt
6,2.3
3,4.5
4,6.7
5,3.2