删除文本文件中包含空格的列

删除文本文件中包含空格的列

我有一个文本文件,其中包含对齐的表格数据,且分隔列的空间过多,例如:

header1     header2          header3
val1a       val2a            val3a
val1bbbb    val2b b ab  ab   val3b

请注意,列值包含空格。 (精确的示例是通过COLUMNS=200 dpkg-query -l在 Debian 上运行获得的,直到删除前几个标题行。)

我想减少行的长度,即将仅包含空格字符的相邻列合并到一个此类列。这里的结果是:

header1  header2       header3
val1a    val2a         val3a      
val1bbbb val2b b ab ab val3b

(请注意,这可能会将字段内的多个空格折叠为单个空格,如上面的“ab ab”=>“ab ab”,但这并不重要。)我该怎么做?谢谢!

(我的一个解决方案假设列由多个空格分隔,因此我可以用文件中其他地方没有出现的分隔符替换它们,然后column -t根据此分隔符重新列。但这很脆弱,而且令人不快,并且如果某些列仅相隔一个空格,或者某些列值包含多个空格,则不起作用。)

相关内容