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
复制代码

 

posted @   小鲨鱼2018  阅读(472)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示