免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2525 | 回复: 13
打印 上一主题 下一主题

请教如何在文件中整块移动某几行到特定的位置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-24 10:08 |只看该作者 |倒序浏览
譬如我想把第5~20行移动到文件头.
不用vi.不用临时文件^_^

谢谢.

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-04-24 12:25 |只看该作者

请教如何在文件中整块移动某几行到特定的位置

我的测试:
/home/lee#cat tmp
1
2
3
4
5
6
7
8
9
0

  1. /home/lee#cat s
  2. #!/bin/bash
  3. a=$(($(sed -n '$=' tmp)+1))
  4. cat tmp|tee >(sed -ne '1p' -ne '6,$p') >(sed -n '2,5p')|sed -n "$a,$"p
复制代码
/home/lee#bash s
2
3
4
5
1
6
7
8
9
0

论坛徽章:
0
3 [报告]
发表于 2005-04-24 12:31 |只看该作者

请教如何在文件中整块移动某几行到特定的位置

刚用vi搞了一个..谢谢烈火,我看看^_^,当会员了啊.请我们FB啊...

把后面9行移动到文件开头
  1. LINE1=`wc -l $1 | awk '{print $1}'`
  2. LINE2=`expr $LINE1 - 9 `
  3. vi $1 <<EOF >/dev/null 2>&1
  4. :$LINE1,$LINE2 m 0
  5. :x
  6. EOF
  7.         echo "Info:   (3)Move the description to the head success."
复制代码

我这个要稍等一下才有结果^_^

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-04-24 12:36 |只看该作者

请教如何在文件中整块移动某几行到特定的位置

[quote]原帖由 "双眼皮的猪"]我这个要稍等一下才有结果^_^[/quote 发表:

呵呵,FB的机会是有的!
PS:本来我想用数组,后来发现比较麻烦,就用了进程替换,结果写的还是很笨拙

论坛徽章:
0
5 [报告]
发表于 2005-04-24 12:43 |只看该作者

请教如何在文件中整块移动某几行到特定的位置

能实现就好咯.
我在弄一个批量添加源码注释的东东...
呵呵
接了同事的工作,文件头却没有文档说明.我就给每个.c文件加注释^_^

谢谢烈火.有空到杭州来请我FB,哈哈

论坛徽章:
0
6 [报告]
发表于 2005-04-24 13:03 |只看该作者

请教如何在文件中整块移动某几行到特定的位置

AppLab 251% cat file1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

AppLab 252% more ok
#!/bin/sh
par1=`expr $2 - $1 + 1`
par2=`expr $1 - 1`
par3=`expr $2 + 1`
tail +$1 file1 | head -$par1>>file2
head -$par2 file1>>file2
tail +$par3 file1>>file2
AppLab 253%ok 5 20
AppLab 254%more file2

AppLab 253% more file2
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
21
22
23

论坛徽章:
0
7 [报告]
发表于 2005-04-24 13:10 |只看该作者

请教如何在文件中整块移动某几行到特定的位置

谢谢楼上这位大哥...不用临时文件哦^_^

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2005-04-24 15:54 |只看该作者

请教如何在文件中整块移动某几行到特定的位置

用ed吧:
  1. ed - filename <<!
  2. 5,20m0
  3. w
  4. q
  5. !
复制代码

看看是否合意!

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
9 [报告]
发表于 2005-04-24 17:02 |只看该作者

请教如何在文件中整块移动某几行到特定的位置

[quote]原帖由 "admirer"]看看是否合意![/quote 发表:

     admirer兄果真shell高手!  

论坛徽章:
0
10 [报告]
发表于 2005-04-24 18:05 |只看该作者

请教如何在文件中整块移动某几行到特定的位置

>(sed -ne '1p' -ne '6,$p')
这里可以简写成
>(sed -n '2,5!p')
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP