다음과 같은 파일이 있습니다
Id 123
Name john
Lastname udosen
Tel 123456
Id 124
Name james
Lastname david
Tel 19865
파일을 인쇄하는 방법은 다음과 같습니다
Id Name Lastname Tel
123 john udosen 123456
124 james david 19865
답변1
탭으로 구분된 출력을 원한다고 가정해 보겠습니다.
$ { printf '%s\n' Id Name Lastname Tel; sed 's/^[^[:blank:]]*.//' file; } | paste - - - -
Id Name Lastname Tel
123 john udosen 123456
124 james david 19865
sed
각 줄(제목)에서 초기 공백이나 탭으로 구분된 단어를 제거하는 데 사용됩니다 . 결과를 paste
형식 에 제공 하고 탭으로 구분된 4개의 열로 형식을 지정합니다. 먼저 출력을 사용하여 헤더를 추가합니다 printf
.
테이블을 생성 하는 데 사용할 수 있는 보기 좋은(정렬된) 출력을 원합니다 column
. 여기서는 열 사이에 paste
삽입 ;
한 다음 이를 사용하여 column
필드를 정렬 하도록 지시합니다 .
$ { printf '%s\n' Id Name Lastname Tel; sed 's/^[^[:blank:]]*.//' file; } | paste -d ';' - - - - | column -t -s ';'
Id Name Lastname Tel
123 john udosen 123456
124 james david 19865
당신은 또한 사용할 수 있습니다 csvlook
(일부csvkit)는 비슷한 방식으로 Markdown 형식의 테이블을 생성합니다.
$ { printf '%s\n' Id Name Lastname Tel; sed 's/^[^[:blank:]]*.//' file; } | paste -d ';' - - - - | csvlook -I -d ';'
| Id | Name | Lastname | Tel |
| --- | ----- | -------- | ------ |
| 123 | john | udosen | 123456 |
| 124 | james | david | 19865 |