잘못된 "paste <(jcal) <(ccal)" 출력에 대한 대안을 수정하거나 찾으세요.

잘못된 "paste <(jcal) <(ccal)" 출력에 대한 대안을 수정하거나 찾으세요.

(내 질문에 대해 논평할 만큼 평판이 높지 않습니다.두 프로그램의 stdout 출력을 나란히 표시하는 방법)

이것을 시도했지만 paste <(jcal) <(ccal) 출력이 엉망입니다.

jcal; ccal;나란히 있지 않은 올바른 출력을 제공합니다.

      Tir 1402      
Sh Ye Do Se Ch Pa Jo
                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 

       July 2023       
 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

실제 출력에는 색상이 있으며 jcal날짜의 색상이 다릅니다.

그러나 사용하면 paste <(jcal) <(ccal)색상이 제거되고 두 출력이 함께 혼합됩니다.

      Tir 1402          
Sh Ye Do Se Ch Pa Jo           July 2023       
                1  2     Su Mo Tu We Th Fr Sa   
 3  4  5  6  7  8  9                        1   
10 11 12 13 14 15 16      2  3  4< 5> 6  7  8   
17 18 19 20 21 22 23      9 10 11 12 13 14 15   
24 25 26 27 28 29 30     16 17 18 19 20 21 22   
31                       23 24 25 26 27 28 29   
     30 31                  

jcal동시에 표시하고 출력하는 더 좋은 방법이 있습니까 ?ccal

다음과 같지만 적절한 색상을 사용합니다.

      Tir 1402                 July 2023       
Sh Ye Do Se Ch Pa Jo     Su Mo Tu We Th Fr Sa   
                1  2                        1   
 3  4  5  6  7  8  9      2  3  4< 5> 6  7  8   
10 11 12 13 14 15 16      9 10 11 12 13 14 15   
17 18 19 20 21 22 23     16 17 18 19 20 21 22   
24 25 26 27 28 29 30     23 24 25 26 27 28 29   
31                       30 31                  

답변1

출력의 첫 번째 줄만 제거하면 되는 것 같습니다 ccal.

$ paste <(jcal) <(ccal|tail -n+2)
      Tir 1402                 July 2023
Sh Ye Do Se Ch Pa Jo     Mo Tu We Th Fr Sa Su
                1  2                     1  2
 3  4  5  6  7  8  9      3  4< 5> 6  7  8  9
10 11 12 13 14 15 16     10 11 12 13 14 15 16
17 18 19 20 21 22 23     17 18 19 20 21 22 23
24 25 26 27 28 29 30     24 25 26 27 28 29 30
31                       31

ccalstdout이 tty로 갈 때만 색상으로 출력되는 것처럼 보이며 (explicit을 사용하더라도 --use-color) 각 줄의 끝에서 색상을 기본값으로 되돌리지 않습니다(일부 터미널에서 성가신 아티팩트 발생). 다음 방법을 사용하여 두 문제를 모두 해결할 수 있습니다.

paste <(jcal) <(socat -u exec:ccal,pty exec:'tail -n+2') |
  sed $'s/$/\e[m/'

socat파이프 대신 의사 터미널 장치(pty)를 사용하여 및 ccal사이에 데이터를 전송하고 각 줄 끝에 SGR0 이스케이프 시퀀스를 추가하여 그래픽 렌더링 속성을 기본값으로 재설정합니다.tailsed<ESC>[m

위의 스크린샷

답변2

글쎄, 정확히 같은 색상은 아니지만 적어도 읽기 쉽고 만족스럽습니다.

이것은 작동합니다:

paste <(ccal) <(printf '\n \t' && jcal)

산출:

    
       July 2023                  Tir 1402      
 Su Mo Tu We Th Fr Sa       Sh Ye Do Se Ch Pa Jo
                    1                       1  2
  2  3  4< 5> 6  7  8        3  4  5  6  7  8  9
  9 10 11 12 13 14 15       10 11 12 13 14 15 16
 16 17 18 19 20 21 22       17 18 19 20 21 22 23
 23 24 25 26 27 28 29       24 25 26 27 28 29 30
 30 31                      31                  

고쳐 쓰다: 황혼과 일출 및 일몰 사이에 표시하려면 sunwait다음 스크립트를 사용할 수 있습니다(위의 Stéphane Chazelas의 뛰어난 솔루션에서 얻은 지식).

paste <(jcal) <(printf '\n' && sunwait list 1 astronomical 27.96382229N 86.91248325E && sunwait list 1 nautical 27.96382229N 86.91248325E && sunwait list 1 civil 27.96382229N 86.91248325E && sunwait list 1 daylight 27.96382229N 86.91248325E && printf '            \n \t \n \t \n \t \n \t \n \t') <(printf '\t' && socat -u exec:ccal,pty exec:'tail -n+2') |   sed $'s/$/\e[m/'

산출:

GPS 좌표를 편집하면 됩니다.

콘솔과 그래픽 터미널 모두에서 실행할 수 있습니다.

sunwait report 27.000N 73.9385723W관심이 있으시면 황혼과 태양 정오를 포함한 보고서가 제공됩니다.

Current Date and Time: 05-Jul-2023 13:33 EDT


Target Information ...

                   Location:  27.000000N, 286.061428E
                       Date: 04-Jul-2023
                   Timezone: EDT
   Sun directly north/south: 13:00
             Twilight angle: -0.83 degrees (daylight)
          Day with twilight: 06:04 to 19:55
                      It is: Day (or twilight)

General Information (no offset) ...

 Times ...         Daylight: 06:04 to 19:55
        with Civil twilight: 05:39 to 20:20
     with Nautical twilight: 05:08 to 20:51
 with Astronomical twilight: 04:34 to 21:25

 Duration ...    Day length: 13:50 hours
        with civil twilight: 14:40 hours
     with nautical twilight: 15:43 hours
 with astronomical twilight: 16:50 hours

위의 훌륭한 솔루션, 특히 색상 부분을 파악한 Stéphane Chazelas에게 다시 한 번 감사드립니다!

관련 정보