유닉스에서 어떤 명령을 사용해야할지 모르겠습니다.
다음과 같은 파일이 있다고 가정해 보겠습니다.
A 23
B 52
C 36
F 25
두 번째 파일에는 3개의 열이 있습니다.
A aligator 2
B panda 3
C bear 4
D pig 1
E yeti 0
F shark 9
G dog 10
H cat 1
이제 첫 번째 열의 값이 파일 간에 일치하면 첫 번째 열 값(1개 파일)을 두 번째 열 값(2개 파일)으로 바꾸고 싶습니다.
출력 예:
aligator 23
panda 52
bear 36
shark 25
누가 날 도울 수 있죠?
최고.
답변1
파일이 정렬되면 join
coreutils를 사용할 수 있습니다.
join -o '2.2 1.2' file1 file2
산출:
aligator 23
panda 52
bear 36
shark 25
답변2
awk
작업을 위한 훌륭한 도구는 다음과 같습니다.
awk 'NR==FNR{a[$1]=$2;next}a[$1]{print $2,a[$1]}' file1 file2
첫 번째 파일을 읽으면( FN==FNR
) a
배열은 두 번째 열의 값으로 채워지고 첫 번째 열부터 인덱싱됩니다. 그런 다음 두 번째 파일이 처리되면 file1의 두 번째 열과 두 번째 열을 인쇄합니다.
산출:
aligator 23
panda 52
bear 36
shark 25