출력 텍스트의 열 형식 지정

출력 텍스트의 열 형식 지정

파일이 3개 있어요

파일 1:

compute-0-44
compute-0-2 
compute-0-7 
compute-0-8 

파일 2:

0
11/29/2017 | 02:01:34
0
05/16/2018 | 08:47:56

파일 3:

0
963
0
459

이 작업을 수행하면 paste file1 file2 file 3다음을 얻습니다.

compute-0-44    0       0
compute-0-2     11/29/2017 | 02:01:34   963
compute-0-7     0       0
compute-0-8     05/16/2018 | 08:47:56   459

내가 원하는 것은:

compute-0-44    0                       0
compute-0-2     11/29/2017 | 02:01:34   963
compute-0-7     0                       0 
compute-0-8     05/16/2018 | 08:47:56   459

페이스트를 사용해도 되나요? 목적에 부합할 수 있는 다른 대안(예: sed)이 있는 경우.

답변1

사용 pr명령:

$ pr -mT file{1..3} | expand
compute-0-44            0                       0
compute-0-2             11/29/2017 | 02:01:34   963
compute-0-7             0                       0
compute-0-8             05/16/2018 | 08:47:56   459

에서 man pr:

   -m, --merge
          print all files in parallel, one in each column, truncate lines,
          but join lines of full length with -J

탭을 공백으로 변환하는 파이프 expand- 응용 프로그램에 따라 필요하지 않을 수도 있습니다(실제로 이 사이트에서 출력 형식이 잘 보이도록 여기에 추가했습니다).

답변2

sed줄에 세로 막대가 없으면 두 번째 탭을 3개의 탭으로 바꿀 수 있습니다.

paste file{1..3} | sed '/|/!s/\t/\t\t\t/2'

관련 정보