列を区切るスペースが多すぎるソートされた表形式のデータを含むテキストファイルがあります。たとえば、次のようになります。
header1 header2 header3
val1a val2a val3a
val1bbbb val2b b ab ab val3b
列の値にはスペースが含まれます。 (正確な例は、COLUMNS=200 dpkg-query -l
最初の数行のヘッダー行が削除されるまでDebianで実行したものです。)
行の長さを短くしたいです。空白文字のみを含む隣接する列を1つの列に結合します。。結果は次のとおりです。
header1 header2 header3
val1a val2a val3a
val1bbbb val2b b ab ab val3b
(上記の「ab ab」=>「ab ab」のように、フィールド内の複数のスペースを単一のスペースに縮小できますが、これは重要ではありません。)どうすればよいですか?ありがとうございます!
(私の解決策の1つは、列が複数のスペースで区切られていると仮定したため、ファイル内の他の場所に表示されない区切り文字に置き換えてから、この区切り文字に基づいて列を再作成することができましたが、column -t
これは壊れやすく不快です。一部の列が1つのスペースで区切られている場合、または一部の列の値に複数のスペースが含まれている場合は機能しません。