码迷,mamicode.com
首页 > 系统相关 > 详细

shell:处理文本

时间:2018-02-22 19:44:35      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:脚本   文本   $1   12px   输出重定向   size   too   echo   等于   

有如下文本,其中前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:处理文本

标签:脚本   文本   $1   12px   输出重定向   size   too   echo   等于   

原文地址:http://blog.51cto.com/12129628/2072120

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!