MAC 주소와 포트 ID 연결

MAC 주소와 포트 ID 연결

MAC 주소와 관련 포트가 포함된 텍스트 파일이 있는데, 파일은 MAC 주소가 동일한 줄 번호를 가진 단일 숫자와 일치하는 방식으로 정렬됩니다. 즉, 줄 1의 MAC 주소가 첫 번째 단일 숫자와 일치하고 두 번째 MAC 일치 주소는 두 번째 단일 숫자와 일치하는 식입니다.

예를 들어 아래 파일과 같이 모든 MAC 및 포트를 일치시키고 싶습니다.

"1e 47 29 00 A0 60 "
"1e 47 29 00 A0 64 "
"1e 47 29 00 A0 AF "
"1e 47 29 00 B1 50 "
"0C 72 0A 27 5F 71 "
"0C 72 0A 27 BC BA "
"2B 07 D4 A2 30 CD "
"2B 07 D4 A2 33 64 "
9
3
7
1
4
2
10
8

MAC에서 따옴표 ""를 제거하고 오른쪽에 포트 번호를 추가하고 아래와 같이 콜론으로 MAC와 포트를 구분하고 싶습니다.

1e 47 29 00 A0 60 :9
1e 47 29 00 A0 64 :3
1e 47 29 00 A0 AF :7
1e 47 29 00 B1 50 :1
0C 72 0A 27 5F 71 :4
0C 72 0A 27 BC BA :2
2B 07 D4 A2 30 CD :10
2B 07 D4 A2 33 64 :8
1B 02 D7 A4 23 65 :19

답변1

awk그리고 sed조합:

awk '{a[NR]=$0}END{for(i=1;i<=NR/2;i++)print a[i]":"a[i+(NR/2)]}' file | sed 's/"//g'

1e 47 29 00 A0 60 :9
1e 47 29 00 A0 64 :3
1e 47 29 00 A0 AF :7
1e 47 29 00 B1 50 :1
0C 72 0A 27 5F 71 :4
0C 72 0A 27 BC BA :2
2B 07 D4 A2 30 CD :10
2B 07 D4 A2 33 64 :8
1B 02 D7 A4 23 65 :19

답변2

유일한 awk해결책:

awk 'gsub("\"",""){a[++i]=$0;next}{print a[++j]":"$0}' file

관련 정보