如何在UNIX中使用GREP / other命令从文本文件中删除头部和尾部记录

时间:2011-04-13 06:46:50

标签: shell unix ksh

我有一个平面文件,如下所示。如何从文件中删除页眉和页脚,哪个标题以“H:”开头,预告片以“T:”开头,使用UNIX shell脚本(KSH)并将其余数据重写为不同的文件?

H: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
T:20050427 TRAILER RECORD

3 个答案:

答案 0 :(得分:2)

要删除第一行和最后一行,您可以执行以下操作:

 tail -n +2 input-file | head -n -1 > output-file

...或者只删除任何以“H:”或“T:”开头的行:

 egrep -v '^[HT]:' input-file > output-file

答案 1 :(得分:1)

假设你所展示的内容合理地代表了其他数据(你想要保留的所有内容都以数字开头,而你想要摆脱的所有内容都以字母开头),它应该是非常简单的,例如: grep "^[0-9]" inputfile > outputfile

答案 2 :(得分:1)

删除第一行和最后一行:sed '1d;$d' file