加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 22:54:33 所属栏目:安全 来源:网络整理
导读:我有一个平面文件,如下所示.如何使用UNIX shell脚本从文件中删除页眉和页脚并重写相同的文件. 9 20050427 HEADER RECORD0000000 00000 000000000 123456 00 654321 DATARECORD0000000 00000 000000000 123456 00 654321 DATARECORD0000000 00000 000000000 1
我有一个平面文件,如下所示.如何使用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

谢谢,
阿伦

解决方法

…和sed:

正如@Baramin所指出的那样:输入的最少量是’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

{8}扩展正则表达式需要-r.

或两者

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

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”将就地更改您的文件.如果要将输出存储在另一个文件中(例如,使用行末尾的> outputfile),请将其删除.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读