文本文件排序。忽略垃圾并从残余部分创建 .csv

文本文件排序。忽略垃圾并从残余部分创建 .csv

我有很多文件,其中包含前言垃圾,后面跟着格式化的信息。它们的格式都相同。我想忽略前言(包括单词“Description”在内的所有内容),并将剩余的内容(包括单词“Chassis”在内的所有内容)排序到 .csv 文件中。例如: 之前:
random blah
random blahrandom x blahrandom blah
randomblah xx randomblah
random xxxx blah
sss
硬件清单:
项目_____________版本__零件号__序列号_____
描述 底盘______________________________JN110XXX3AFA___MXX60
中板_________REV 03__710-013698__TXXX93__________MXX60 背板
FPM 板_______REV 03__710-014974__XA8XXX__________前面板显示器
PDM____________Rev 03___740-013110__QCXXX19500H____配电模块
PEM 0___________Rev 04___740-013682_QCXXX43409S_____PS 170kW; 200-240VAC 输入

之后:
底盘,,,JN110XXX3AFA,MXX60
中板,版本 03,710-013698,TXXX93,MXX60 背板
FPM 板,版本 03,710-014974,XA8XXX,前面板显示屏
PDM,版本 03,740-013110,QCXXX19500H,配电模块
PEM 0,版本 04,740-013682,QCXXX43409S,PS 170kW;200-240VAC 输入

我一直在努力一次一个单词地阅读它,并寻找触发词来将“描述”更改为转换为 .csv,但我想知道我是否以正确/最佳的方式进行操作?(抱歉上面的格式很糟糕 - 所有原始格式都在漂亮整洁的列中)。

谢谢

安迪。

答案1

要删除直至标题行(包括标题行):

sed -e '1,/^Hardware inventory:$/d' my_file

这不会改变文件本身,而是打印行后的文件部分Hardware inventory:。要改变文件本身,您需要添加-i到选项中。

man sed有更多信息。

相关内容