码迷,mamicode.com
首页 > 编程语言 > 详细

sed指令实践---用于排序

时间:2017-06-14 13:09:57      阅读:450      评论:0      收藏:0      [点我收藏+]

标签:源文件   craft   

使用sed命令,进行简单排序,更改源文件


首先,要排序的文件叫TestFile

[sroot@AAEP7151 shell]# cat TestFile

A:4

B:5

C:1

D:3

E:2


字母后边是序号,要按照正确的12345顺序排列。 


脚本名字叫setup.sh

[sroot@AAEP7151 shell]# cat sed.sh

#!/bin/bash

TestFile=/home/craft/shell/TestFile


 Testcontent=`awk -F: ‘{print $2}‘ $TestFile`  拿到第二列


 echo $Testcontent

for init in $Testcontent;do

   temp0=$(grep $init $TestFile |awk -F: ‘{print $1}‘)  拿到第一列

    sed -i ‘/‘"$init"‘/a‘"$temp0"‘‘ test    


done

 原来test文件里面,是序号12345

以A:4举例 , init=4,用sed指令,把A查到test的第四列后

同样的把B查到第5列后,进行排序。


运行sed.sh的结果是

[sroot@AAEP7151 shell]# ./sed.sh

4 5 1 3 2

test的内容变成

[sroot@AAEP7151 shell]# cat test

1

C

2

E

3

D

4

A

5

B

6

如果不用插入,用替换 sed -i ‘/‘"$init"‘/c"$temp0"‘‘ test    

结果如下

[sroot@AAEP7151 shell]# cat test

C

E

D

A

B


另外,这个功能用sort就可以实现

[sroot@AAEP7151 shell]# sort +1 -2 -n -t : TestFile

C:1

E:2

D:3

A:4

B:5




sed指令实践---用于排序

标签:源文件   craft   

原文地址:http://12833256.blog.51cto.com/12823256/1936515

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