有如下文本,其中前5行内容为1
2
3
4
51111111:13443253456
2222222:13211222122
1111111:13643543544
3333333:12341243123
2222222:12123123123
用shell脚本处理后,按以下格式输出:1
2
3
4
5
6
7
8[1111111]
13443253456
13643543544
[2222222]
13211222122
12123123123
[3333333]
12341243123
核心要点
- 以冒号为分隔符,以第一段为基准,列出所有第二段
- 截取第一段内容,排序,去重
- 遍历第一段内容,使用awk获取所有相关联的第二段
- awk命令中引用shell变量要使用-v重新定义新变量来接收
awk -v j=$w -F ':' '$1==j {print $2}' 78.txt
或者使用"''"
形式调用shell变量awk -F ':' '$1=="'$w'" {print $2}' 78.txt
代码内容
1 |
|