我有包含 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