我这里有一个不寻常的. 我们有一个带有标题的竖线分隔文件,但在第9个字段(获取用户输入)中,我们偶尔可以看到用户输入竖线符号. 这会将文件的格式完全抛出窗口,因为管道符号的数量现在与标题不匹配. 例如,如下所示--这是EVNT_MSSG标题下的第5个条目:
IDS|STG |STT|WRKLST |AR|CD |DT |INDX|EVNT_MSSG |EVNT_SRC|EVNT_TM |TYP|DATE |USR_ID|IDS_APP
1 |ENRICH|Inc|complete|14|BM404|202302|15 |This is some text |Operator|10:33:13|0 |20230220|admin |3177098
2 |ENRICH|Inc|complete|15|BM501|202302|16 |This is some more |Operator|10:33:13|0 |20230220|admin |3177098
3 |ENRICH|Inc|complete|16|BM502|202302|17 |This bit is all good |Operator|10:33:13|0 |20230220|admin |3177098
4 |ENRICH|Inc|complete|17|BM551|202302|18 |Yet more text |Operator|10:33:13|0 |20230220|admin |3177098
5 |ENRICH|Inc|complete|18|EM002|202302|19 |problem here | pipes | not needed | Call |Operator|10:33:14|0 |20230220|admin |3177098
6 |ENRICH|Inc|complete|19|BM451|202302|20 |This is also fine |Operator|10:33:14|0 |20230220|admin |3177098
显然,在源头上改变这一点会导致公司不愿意支付的成本,所以我的任务是想出一个解决方案,在保持其他所有字段不变的情况下,只go 掉第9个字段中的管道符号.
我真倒霉,碰壁了.
我在awk中使用|作为文件分隔符,以拉出第9个字段,即
awk 'BEGIN { FS = "[|]+" } ; { print $9 }'
但管道正在扔掉这一点,因为他们将第一条不需要的管道视为下一个合法的分隔符.我想我可能不得不从一个不同的Angular 来处理这个问题,但我还没有找到最模糊的方向. 在这方面的任何帮助都将受到极大的感谢.