![删除文本文件中包含空格的列](https://linux22.com/image/114294/%E5%88%A0%E9%99%A4%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E5%8C%85%E5%90%AB%E7%A9%BA%E6%A0%BC%E7%9A%84%E5%88%97.png)
我有一个文本文件,其中包含对齐的表格数据,且分隔列的空间过多,例如:
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
根据此分隔符重新列。但这很脆弱,而且令人不快,并且如果某些列仅相隔一个空格,或者某些列值包含多个空格,则不起作用。)