shell:处理文本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell:处理文本相关的知识,希望对你有一定的参考价值。
有如下文本,其中前5行内容为
1111111:13443253456
2222222:13211222122
1111111:13643543544
3333333:12341243123
2222222:12123123123
用shell脚本处理后,按下面格式输出:
[1111111]
13443253456
13643543544
[2222222]
13211222122
12123123123
[3333333]
12341243123
#!/bin/bash sort -n 1.txt |awk -F ':' '{print $1}'|uniq >id.txt for id in `cat id.txt` do echo "[$id]" awk -F ':' '$1=="'$id'" { print $2}' 1.txt done
解析:
sort -n 使用纯数字排序
awk -F ':' '{print $1}' 以“:”冒号为分隔符,打印第一字域(第一部分)
uniq 去重复的行
>id.txt 输出重定向到id.txt文本中
awk -F ':' '$1=="'$id'" { print $2}' 1.txt :以“:”冒号分隔,如果第一域的值等于$id的值,打印第二域。
纯属个人见解,不正之处请指出
以上是关于shell:处理文本的主要内容,如果未能解决你的问题,请参考以下文章