使用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
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
转载于:https://blog.51cto.com/12833256/1936515