忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
1234下一页
最近访问板块 发新帖
查看: 10622 | 回复: 31

sed如何实现两行的位置交换 [复制链接]

论坛徽章:
1
2015元宵节徽章
日期:2015-03-06 15:51:33
发表于 2008-09-18 14:33 |显示全部楼层
文本中
有两行
一行是
music
令一行是
realist
不用考虑是否含有多行music
或多行realist
并且他们一定是同时出现在文件中,即或者都出项或者都不出现
如何将出现这两行的文本中的这两行交换位置》
高手指教

论坛徽章:
1
处女座
日期:2014-12-23 17:59:27
发表于 2008-09-18 14:40 |显示全部楼层
之前有过类似的贴子,自己搜.

论坛徽章:
1
2015元宵节徽章
日期:2015-03-06 15:51:33
发表于 2008-09-18 14:45 |显示全部楼层
只有特定行调换
例如2与6行调换
可我的位置不固定

论坛徽章:
1
2015元宵节徽章
日期:2015-03-06 15:51:33
发表于 2008-09-18 14:48 |显示全部楼层
好了,就替换得了,不调位置了

论坛徽章:
0
发表于 2008-09-18 14:50 |显示全部楼层
打印出行号再调换

论坛徽章:
21
15-16赛季CBA联赛之广东
日期:2016-01-19 13:33:37申猴
日期:2014-10-23 08:36:23白羊座
日期:2014-10-27 11:14:37射手座
日期:2014-11-25 08:56:112015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:572015亚冠之阿尔萨德
日期:2015-07-21 15:17:182015亚冠之莱赫维亚
日期:2015-05-12 17:03:122015年亚洲杯之约旦
日期:2015-04-03 11:15:162015年亚洲杯之科威特
日期:2015-03-16 09:11:522015年迎新春徽章
日期:2015-03-04 09:49:032015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2008-09-18 14:52 |显示全部楼层
原帖由 sabin541 于 2008-9-18 14:45 发表
只有特定行调换
例如2与6行调换
可我的位置不固定


/music/ 就相当于行号。
虽然你的情况稍微复杂一点,但思路上是一样的。

论坛徽章:
1
2015元宵节徽章
日期:2015-03-06 15:51:33
发表于 2008-09-18 15:02 |显示全部楼层
啊,好我试试

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2008-09-18 15:34 |显示全部楼层

  1. sed -nr '/music/{h;ba;};/realist/{h;bb;};p;d;
  2. :a n;/realist/{p;g;s/([^\n]*)\n(.*)/\2\n\1/;p;be;};H;ba;
  3. :b n;/music/{p;g;s/([^\n]*)\n(.*)/\2\n\1/;p;be;};H;bb;
  4. :e n;p;be'
复制代码

[ 本帖最后由 cjaizss 于 2008-9-19 09:27 编辑 ]

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
发表于 2008-09-18 15:39 |显示全部楼层
原帖由 cjaizss 于 2008-9-18 15:34 发表

sed -nr '/music/{h;ba;};/realist/{h;bb;};p;d;
:a n;/realist/{p;g;s/([^\n]*)\n(.*)/\2\n\1/;p;be;};H;ba;
:b n;/music/{p;g;s/([^\n]*)\n(.*)/\2\n\1/;p;be;};H;ba;
:e n;p;be'



强!问一下cjaizss你在考虑这种问题时思路是怎么想的

论坛徽章:
1
处女座
日期:2014-12-23 17:59:27
发表于 2008-09-18 15:42 |显示全部楼层
原帖由 cjaizss 于 2008-9-18 15:34 发表

sed -nr '/music/{h;ba;};/realist/{h;bb;};p;d;
:a n;/realist/{p;g;s/([^\n]*)\n(.*)/\2\n\1/;p;be;};H;ba;
:b n;/music/{p;g;s/([^\n]*)\n(.*)/\2\n\1/;p;be;};H;ba;
:e n;p;be'


faint, 看不大懂.

其实楼主的要求 未必有这么复杂啦.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP