当前位置:  开发笔记 > 人工智能 > 正文

如何使用UNIX shell脚本删除平面文件的页眉和页脚记录?

如何解决《如何使用UNIXshell脚本删除平面文件的页眉和页脚记录?》经验,为你挑选了2个好方法。

我有一个平面文件,如下所示.如何使用UNIX shell脚本从文件中删除页眉和页脚并重写相同的文件.

9 20050427 HEADER RECORD
0000000 00000 000000000 123456 00 654321 DATARECORD
0000000 00000 000000000 123456 00 654321 DATARECORD
0000000 00000 000000000 123456 00 654321 DATARECORD
0000000 00000 000000000 123456 00 654321 DATARECORD
6 20050427 TRAILER RECORD

谢谢,阿伦



1> Chen Levy..:

......并且sed:

正如@Baramin所说:输入的数量最少sed '1d;$d',这是它的工作原理:

按行号

sed -i'' -e '1d' -e '$d' yourfile

1d删除第一行$d删除最后一行.

或者通过模式

sed -r -i -e '/^[0-9] [0-9]{8} HEADER RECORD$/d' \
          -e '/^[0-9] [0-9]{8} TRAILER RECORD$/d' yourfile

-r需要使用{8}延长的正则表达式.

或两者

如果你是超级迂腐,并希望以最流行的方式掩盖你的屁股:

sed -r -i.bak -e '1{/^[0-9] [0-9]{8} HEADER RECORD$/d}' \
              -e '${/^[0-9] [0-9]{8} TRAILER RECORD$/d}' yourfile

-i''会改变yourfile原地.如果要将输出存储在另一个文件中(例如,> outputfile在行的末尾),请将其删除.


好一个.可以用这种方式总结:sed'1d; $ d'文件

2> tobyodavies..:
tail -n +2 filename | head -n -1

没有我的unix盒子进行测试,所以这些数字可能是1或2,我不记得他们是机器人1,2还是什么,但我一直都是这个(我只是在运行之前就开始了cmd,看它的1或2 ...... tail ...应该删除第一行,head ...应该删除最后一行

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有