열을 구분하는 공간이 너무 많은 정렬된 테이블 형식 데이터가 포함된 텍스트 파일이 있습니다. 예를 들면 다음과 같습니다.
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
이 구분 기호를 기반으로 다시 열을 만들 수 있었습니다. 그러나 이는 깨지기 쉽고 불쾌합니다. 일부 열이 하나의 공백으로만 구분되거나 일부 열 값에 여러 공백이 포함된 경우에는 작동하지 않습니다.