Aru*_*ony 5 unix shell scripting
我有一个平面文件,如下所示.如何使用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
Run Code Online (Sandbox Code Playgroud)
谢谢,阿伦
Che*_*evy 10
......并且sed:
正如@Baramin所说:输入的数量最少sed '1d;$d',这是它的工作原理:
sed -i'' -e '1d' -e '$d' yourfile
Run Code Online (Sandbox Code Playgroud)
1d删除第一行$d删除最后一行.
sed -r -i -e '/^[0-9] [0-9]{8} HEADER RECORD$/d' \
-e '/^[0-9] [0-9]{8} TRAILER RECORD$/d' yourfile
Run Code Online (Sandbox Code Playgroud)
-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
Run Code Online (Sandbox Code Playgroud)
该-i''会改变yourfile原地.如果要将输出存储在另一个文件中(例如,> outputfile在行的末尾),请将其删除.
tail -n +2 filename | head -n -1
Run Code Online (Sandbox Code Playgroud)
没有我的unix盒子进行测试,所以这些数字可能是1或2,我不记得他们是机器人1,2还是什么,但我一直都是这个(我只是在运行之前就开始了cmd,看它的1或2 ...... tail ...应该删除第一行,head ...应该删除最后一行
| 归档时间: |
|
| 查看次数: |
56581 次 |
| 最近记录: |