【发布时间】:2015-06-04 23:44:12
【问题描述】:
我有一个包含多行字段的输入文件。在此文件中,字段模式根据查询大小重复。
ZZZZ
21293
YYYYY XXX WWWW VV
13242 MUTUAL BOTH NO
UUUUU TTTTTTTT SSSSSSSS RRRRR QQQQQQQQ PPPPPPPP
3 0 3 0
NNNNNN MMMMMMMMM LLLLLLLLL KKKKKKKK JJJJJJJJ
2 0 5 3
IIIIII HHHHHH GGGGGGG FFFFFFF EEEEEEEEEEE DDDDDDDDDDD
5 3 0 3
我想要的输出是每组字段中的一行。空的 字段应该被标记。示例:“x”
21293 13242 MUTUAL BOTH NO 3 0 X 3 0 X 2 0 X 5 3 5 3 0 X 3 X
12345 67890 MUTUAL BOTH NO 3 0 X 3 0 X 2 0 X 5 3 5 3 0 X 3 X
我一直在考虑如何使用 awk/unix 脚本获得所需的输出,但无法弄清楚。有任何想法吗?非常感谢!!!
【问题讨论】:
-
输入中的
12345和67890在哪里? -
那么您在每对第二行中的字段是基于第一行中
XXXX事物的列位置? -
不应该
XXX是XXXXXX所以它和它下面的值一样长? -
没有一种简单的方法可以检测“S”字段在下一行中没有值。从表面上看,“P”字段更容易,至少如果前面的字段都没有丢失的话。 (当然,“L”、“F”和“D”字段也同样有趣。)数据中有空行吗?输入数据未说明从 12345 开始的输出。你怎么知道你什么时候开始一个新的数据块?第二条(数据)线与前一条(掩码)线的对齐程度如何?您确定不能以更易于处理的格式显示数据吗?
-
为什么输出以
5 3 0 X X结尾?不应该是5 3 0 X 3 X吗?