需要帮助通过UNIX命令解析文件

约书亚记1729

我有一个包含这样的行的文件

LINEID1:FIELD1=ABCD,&FIELD2-0&FIELD3-1&FIELD4-0&FIELD9-0;
LINEID2:FIELD1=ABCD,&FIELD5-1&FIELD6-0;
LINEID3:FIELD1=ABCD,&FIELD7-0&FIELD8-0;

LINEID1:FIELD1=XYZ,&FIELD2-0&FIELD3-1&FIELD9-0
LINEID3:FIELD1=XYZ,&FIELD7-0&FIELD8-0;

LINEID1:FIELD1=PQRS,&FIELD3-1&FIELD4-0&FIELD9-0;
LINEID2:FIELD1=PQRS,&FIELD5-1&FIELD6-0;
LINEID3:FIELD1=PQRS,&FIELD7-0&FIELD8-0;

我只对以LINEID1开头的行以及该行中的某些元素(FIELD1,FIELD2,FIELD4和FIELD9)感兴趣。输出应如下所示(不带&号。可以用|代替)

FIELD1=ABCD|FIELD2-0|FIELD4-0|FIELD9-0;
FIELD1=XYZ|FIELD2-0|FIELD9-0;
FIELD1=PQRS|FIELD4-0|FIELD9-0;

如果需要其他信息,请告诉我,我将它们发布在编辑中。谢谢!!

鲁本L.

纯awk:

awk -F ":" ' /LINEID1[^0-9]/{gsub(/FIELD[^1249]+[-=][A-Z0-9]+/,"",$2); gsub(/,*&+/,"|",$2); print $2} ' file

已更新以提供正确的格式并省略LINEID11等。

输出:

FIELD1=ABCD|FIELD2-0|FIELD4-0|FIELD9-0;
FIELD1=XYZ|FIELD2-0|FIELD9-0
FIELD1=PQRS|FIELD4-0|FIELD9-0;

解释:

awk -F ":" -将行分为LHS($ 1)和RHS($ 2),因为输出只需要RHS

/LINEID1[^0-9]/ -仅返回与LINEID1匹配并且也忽略LINEID11,LINEID100等的行...

gsub(/FIELD[^1249]+[-=][A-Z0-9]+/,"",$2) -删除RHS上所有非1、4或9的字段

gsub(/,*&+/,"|",$2) -清理RHS上的剩余分隔符

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

需要帮助解析文件

来自分类Dev

使用Unix命令解析文件

来自分类Dev

需要帮助来解析 XML 文件

来自分类Dev

需要帮助,在查找命令中省略文件夹

来自分类Dev

需要帮助,在查找命令中省略文件夹

来自分类Dev

需要帮助来解析Perl中的文本文件

来自分类Dev

需要帮助来解析.csv文件C中的数据

来自分类Dev

需要帮助来解析.csv文件C中的数据

来自分类Dev

需要帮助为Twitter Oauth解析XML文件

来自分类Dev

嗨,我需要帮助来解析Java中的JSON文件

来自分类Dev

FFMPEG 需要帮助优化命令

来自分类Dev

需要帮助解析思科输出

来自分类Dev

需要帮助解析TypeScript语法

来自分类Dev

需要帮助识别解析错误

来自分类Dev

使用Unix命令解析复杂的文本文件

来自分类Dev

在 python 中解析管道命令流时出现问题,需要帮助

来自分类Dev

需要帮助-通过perl在命令行中的java中传递两个参数

来自分类Dev

需要在UNIX中安装LDAP的帮助

来自分类Dev

需要帮助以python读取文件

来自分类Dev

通过`file`命令的解析输出过滤`find`生成的文件

来自分类Dev

使用Gold Parser解析项目和包文件-'IdList'需要的帮助

来自分类Dev

需要帮助,将文件解析为每行两个关键字段

来自分类Dev

Unix 文件保护命令

来自分类Dev

UNIX shell文件解析

来自分类Dev

需要帮助通过批处理文件添加注册表项

来自分类Dev

需要帮助,开始通过Java将原始G3传真文件转换为TIFF格式

来自分类Dev

需要帮助解决我的天气命令错误

来自分类Dev

需要帮助在Ansible中传递curl命令

来自分类Dev

需要帮助来了解此命令吗?