MACアドレスと関連ポートを含むテキストファイルがあり、ファイルはMACアドレスが同じ行番号を持つ単一の番号と一致するようにソートされます。つまり、行 1 の MAC アドレスが最初の単一番号と一致し、2 番目の MAC 一致アドレスが 2 番目の単一番号と一致する式です。
たとえば、次のファイルに示すように、すべての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