linux中sed命令实现任意两行数据的互换
1、测试数据
[root@centos7pc1 test2]# cat test.txt 1 x c 2 s d 3 e t 4 d s 5 j u 6 n x
2、程序
[root@centos7pc1 test2]# cat swap.sh #!/bin/bash temp1=$(sed -n "$1p" $3) temp2=$(sed -n "$2p" $3) sed "$1c $temp2" $3 -i sed "$2c $temp1" $3 -i
3、测试
[root@centos7pc1 test2]# ls swap.sh test.txt [root@centos7pc1 test2]# cat test.txt ## 测试数据 1 x c 2 s d 3 e t 4 d s 5 j u 6 n x [root@centos7pc1 test2]# cat swap.sh ## 程序 #!/bin/bash temp1=$(sed -n "$1p" $3) temp2=$(sed -n "$2p" $3) sed "$1c $temp2" $3 -i sed "$2c $temp1" $3 -i [root@centos7pc1 test2]# bash swap.sh 1 3 test.txt ## 1和3为交换的行号, test.txt为处理的文件 [root@centos7pc1 test2]# ls swap.sh test.txt [root@centos7pc1 test2]# cat test.txt ## 查看交换结果 3 e t 2 s d 1 x c 4 d s 5 j u 6 n x
[root@centos7pc1 test2]# ls swap.sh test.txt [root@centos7pc1 test2]# cat test.txt 3 e t 2 s d 1 x c 4 d s 5 j u 6 n x [root@centos7pc1 test2]# cat swap.sh ## 程序 #!/bin/bash temp1=$(sed -n "$1p" $3) temp2=$(sed -n "$2p" $3) sed "$1c $temp2" $3 -i sed "$2c $temp1" $3 -i [root@centos7pc1 test2]# bash swap.sh 2 5 test.txt ## 第2行和第5行进行互换 [root@centos7pc1 test2]# ls swap.sh test.txt [root@centos7pc1 test2]# cat test.txt ## 查看交换结果 3 e t 5 j u 1 x c 4 d s 2 s d 6 n x