Fro*_*her 5 linux sed awk text-formatting
我有一个包含一列数据的文件(即每行一个数据值)。\xc2\xa0\n我将这些数据解释为多个数据集;\n数据集由一行或多行分隔NA
。\xc2\xa0\n请注意,数据集的长度不同。\xc2\xa0\n我想将其转换为多列格式\n其中每个数据集位于列中\n(与它们在输入文件中出现的顺序相同)。
例如,\n我有以下文件(实际上,该文件包含更多数据):
\n\nNA\n4\n3\n5\n7\n8\n3\nNA\nNA\nNA\n3\n4\n5\n2\nNA\n2 \n7\n4\n6\n9\nNA\n
Run Code Online (Sandbox Code Playgroud)\n\n我的预期输出如下:
\n\n4 3 2\n3 4 7\n5 5 4\n7 2 6\n8 . 9\n3\n
Run Code Online (Sandbox Code Playgroud)\n\n8 和 9 之间的点并不是真正需要的,但也可以用空格代替。
\n该输出格式对我来说没有意义。我认为这根本不实用。
无论如何,只需每行写入它,然后转置(或者更好,将其保留在每行):
tr '\n' ' ' < example | tr 'N' '\n' | sed 's/^A //; /^$/d'
Run Code Online (Sandbox Code Playgroud)
给出
4 3 5 7 8 3
3 4 5 2
2 7 4 6 9
Run Code Online (Sandbox Code Playgroud)