2016-11-02 4 views
0

http 요청으로 데이터를 취한 다음 두 개의 열로 나뉘어져있는 정보를 인쇄하는 스크립트를 만들려고합니다. 예를 들어 :bash 스크립트로 도표화

abcde   | 123 
fghijkl   | 4567 
mnopqrstuvwxyz   | foo 

내가가 예상대로 작동하지 않는 경우에도 표와 함께 볼 수 있듯이 ...

사람이이 문제를 해결하기위한 아이디어가 있습니까? 당신이 사용할 수

답변

2

사전으로

감사 :

cat file | column -t -s' ' 

abcde   | 123 
fghijkl   | 4567 
mnopqrstuvwxyz | foo 

예는 문제의 정확한 출력을 포함하는 파일입니다,하지만 당신은 어떤 소스에서 column에 파이프를 할 수 있습니다.

  • -s 구분 기호 (문자 집합 가능)를 지정합니다.
  • -t 입력에 포함 된 열 수를 결정하고 테이블을 작성하십시오. 열은 공백, 기본적으로 또는 -s 옵션을 사용하여 제공된 문자로 구분됩니다. 예쁜 프린트 디스플레이에 유용합니다.

입력란에 구분 기호 (이 경우 "|")를 입력하면 다음을 사용하여 원하는 구분 기호를 삽입 할 수 있습니다. "|" 가진 단일 공간 대체 상기 sed 메신저에

cat file | sed 's//| /' | column -t -s' ' 

, sed 먼저 공간 매칭 기본적으로 광고에 하나의 공간에 일치한다.

+1

"-o '|'를 사용하는 것처럼 보입니다. " – Aaron

+0

Arron 입력에 감사드립니다. 답변을 수정했습니다. 구분 기호를 추가하는 더 좋은 방법이 있다면 답변을 공유하기 위해 공유하십시오. –

+0

거기에'sed'가 필요 없다고 생각합니다. 저는 OP가 파이프를 출력물에 표시하기를 원했습니다. 그렇다면'-o'가 입력에 있는지 여부를 지정해야합니다 (구분 기호는 출력 구분 기호로 대체됩니다. 기본값은 공백 2 개입니다). 입력은 반드시'column'이 처리 할 수 ​​있도록 구분 기호를 포함해야합니다 (단 하나의 공백 일 수도 있고 다른 것으로 대체 할 필요가 없습니다) – Aaron

관련 문제