명령 출력을 오른쪽으로 이동

명령 출력을 오른쪽으로 이동

.bashrc로그인 터미널에 유용한 정보를 제공하기 위해 파일을 작성하고 있으며 cal 명령(좋은 명령)을 실행하라고 지시한다고 가정해 보겠습니다 . .bashrc"환영 메시지"의 나머지 형식 과 일치하도록 결과 달력을 오른쪽으로 어떻게 이동합니까 ?

답변1

cal | sed 's/^/     /'

설명하다

  • cal |: cal의 출력을 파이프로 연결합니다...
  • sed 's/^/ /'sed는 줄의 시작 부분을 찾아 ^공백으로 바꿉니다. 여기에서 원하는 형식에 맞게 공백 수를 변경할 수 있습니다.

편집하다

그날의 하이라이트를 유지하려면 cal파이프라인에 "색상"(하이라이트)을 출력하도록 지시해야 합니다. ~에서man cal

   --color [when]
          Colorize output.  The when can be never, auto, or always.  Never will turn off coloriz‐
          ing  in  all  situations.  Auto is default, and it will make colorizing to be in use if
          output is done to terminal.  Always will allow colors to be outputed when  cal  outputs
          to pipe, or is called from a script.

매뉴얼에 오타가 있는 것 같습니다. =이를 작동시키려면 오타가 필요합니다. 그래서 마지막 명령은

cal --color=always | sed 's/^/     /'

답변2

cal | nl -bn

nl... 번호가 없는 입력 줄을 항상 추가하는 들여쓰기 양과 동일하게 들여쓰기하기 때문에 작동합니다 . 기본적으로 nl입력의 -h시작이나 -f끝 부분에는 번호가 지정되지 않고 -b본문 줄에만 번호가 지정됩니다. n본문 줄에 번호를 매기지 않도록 지시하면 -b전혀 번호가 매겨지지 않고 각 입력 줄에 들여쓰기만 삽입됩니다.

들여쓰기 크기를 조정하려면 -width 및 분리기 스위치를 사용하십시오 .-s


cal; cal | nl -bn

    December 2015   
Su Mo Tu We Th Fr Sa
       1  2  3  4  5 
 6  7  8  9 10 11 12 
13 14 15 16 17 18 19 
20 21 22 23 24 25 26 
27 28 29 30 31       

           December 2015   
       Su Mo Tu We Th Fr Sa
              1  2  3  4  5 
        6  7  8  9 10 11 12 
       13 14 15 16 17 18 19 
       20 21 22 23 24 25 26 
       27 28 29 30 31       

게다가:

cal | pr -to[num]

...어디[num]각 줄의 시작 부분에 삽입할 공백 수입니다. pr일반적으로 한 줄에 66줄을 인쇄합니다.페이지, -t머리글/바닥글 삽입을 생략하고 입력 내용을 출력에 인쇄하도록 지시합니다. 그런 다음 오프셋 여백 스위치를 사용하여 -o원하는 수의 공백을 삽입하십시오.[num]각 출력 라인의 시작 부분에:

cal; cal | pr -to10

    December 2015   
Su Mo Tu We Th Fr Sa
       1  2  3  4  5 
 6  7  8  9 10 11 12 
13 14 15 16 17 18 19 
20 21 22 23 24 25 26 
27 28 29 30 31       

              December 2015   
          Su Mo Tu We Th Fr Sa
                 1  2  3  4  5 
           6  7  8  9 10 11 12 
          13 14 15 16 17 18 19 
          20 21 22 23 24 25 26 
          27 28 29 30 31       

답변3

그리고 paste:

cal | paste /dev/null -

paste파일 행을 사이에 탭 문자와 함께 붙여넣습니다. 여기서는 파이프를 통해 전달된 출력 인 stdin( ) /dev/null과 함께 빈 파일( )을 붙여넣습니다 .paste-cal

답변4

다음은 사용 예입니다 ex.

ex +"%norm 20I " +%p -scq! <(cal)

20원하는 공백 수로 변경합니다 . 사용 "%norm 20I "- 을 교체하여 많은 공백을 반복하는 것보다 효율적입니다 "%s/^/ /".

관련 정보