나는 조금 효과적이려고 노력하고 있으며 스크립트 또는 명령 솔루션이 필요합니다.
2 개의 열이있는 파일 또는 1 개의 열이있는 두 개의 파일 중 더 쉬운 파일을 만든다고 가정 해 보겠습니다.
AA1 B2 ZZ1 YYY XX1
AA2 B2 ZZ2 YYY XX2
AA3 B3 ZZ3 YYY XX3
AA4 B4 ZZ4 YYY XX4
ZZ5 YYY XX5
ZZ6 YYY XX6
ZZ7 YYY XX7
항목 수가 고르지 않습니다. 이제 첫 번째 열의 모든 값을 가져 와서 두 번째 열의 모든 값과 결합하는 새 파일 (가급적 다른 입력도 사용하지만 여기에서 시작)을 만들고 싶습니다 (항상 동일하지 않은 줄 수를 갖게됩니다). ) 및 결과를 다음과 같이 출력합니다.
AA1 B2 ZZ1 YYY XX1
AA1 B2 ZZ2 YYY XX2
[...]
AA4 B4 ZZ1 YYY XX1
AA4 B4 ZZ2 YYY XX2
따라서 열 1의 모든 값을 순서대로 순환하여 순서대로 열 2의 각 값과 결합합니다.
다음 파일이 있다고 가정합니다.
$ cat file1
ZZ1 YYY XX1
ZZ2 YYY XX2
ZZ3 YYY XX3
ZZ4 YYY XX4
ZZ5 YYY XX5
ZZ6 YYY XX6
ZZ7 YYY XX7
$ cat file2
AA1 B2
AA2 B2
AA3 B3
AA4 B4
그런 다음 이것을 사용하십시오 awk
.
awk 'FNR==NR{a[c++]=$0} FNR!=NR{for(i in a){print $0,a[i]}}' file1 file2
FNR==NR
첫 번째 파일에만 적용 file1
a[c++]=$0
a
의 내용으로 호출 된 배열을 채 웁니다.file1
FNR!=NR
두 번째 파일에만 적용 file2
for(i in a)
루프 트로프 어레이 a
...print $0,a[i]
... 그리고 file2
배열의 내용과 줄을 인쇄합니다 .아웃 아웃 :
AA1 B2 ZZ1 YYY XX1
AA1 B2 ZZ2 YYY XX2
AA1 B2 ZZ3 YYY XX3
AA1 B2 ZZ4 YYY XX4
AA1 B2 ZZ5 YYY XX5
AA1 B2 ZZ6 YYY XX6
AA1 B2 ZZ7 YYY XX7
AA2 B2 ZZ1 YYY XX1
AA2 B2 ZZ2 YYY XX2
AA2 B2 ZZ3 YYY XX3
AA2 B2 ZZ4 YYY XX4
AA2 B2 ZZ5 YYY XX5
AA2 B2 ZZ6 YYY XX6
AA2 B2 ZZ7 YYY XX7
AA3 B3 ZZ1 YYY XX1
AA3 B3 ZZ2 YYY XX2
AA3 B3 ZZ3 YYY XX3
AA3 B3 ZZ4 YYY XX4
AA3 B3 ZZ5 YYY XX5
AA3 B3 ZZ6 YYY XX6
AA3 B3 ZZ7 YYY XX7
AA4 B4 ZZ1 YYY XX1
AA4 B4 ZZ2 YYY XX2
AA4 B4 ZZ3 YYY XX3
AA4 B4 ZZ4 YYY XX4
AA4 B4 ZZ5 YYY XX5
AA4 B4 ZZ6 YYY XX6
AA4 B4 ZZ7 YYY XX7
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다