(私の質問についてコメントするほど評判は高くありません。両方のプログラムの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
ccal
stdoutがttyに行くときだけ色で出力されるように見えます(explicitを使用しても--use-color
)、各行の終わりに色をデフォルト値に戻すことはありません(一部の端末で迷惑なアーティファクトが発生します)。次の方法を使用して両方の問題を解決できます。
paste <(jcal) <(socat -u exec:ccal,pty exec:'tail -n+2') |
sed $'s/$/\e[m/'
socat
パイプの代わりに擬似ターミナルデバイス(pty)を使用してccal
データを転送し、各行の最後にSGR0エスケープシーケンスを追加して、グラフィックレンダリングプロパティをデフォルト値にリセットします。tail
sed
<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에게 다시 한 번 감사드립니다!