epoch idők feldolgozása színesben gyorsabban

Egy txt fájlban csak epoch idők vannak egymás alatt. Fel tudom dolgozni őket. De én színesben szeretném, és akkor már lassú, mert így már 4-szer kell konvertálnia a date parancsnak. Mivel mind az 5 oszlop más színű.
Azon is agyalok, hogy miként lehetne áttekinthetőbbé tenni. Ezt:

4 - 1642687800 - 2022-01-20 - 15:10:00 - csütörtök
4 - 1642711200 - 2022-01-20 - 21:40:00 - csütörtök
4 - 1642719000 - 2022-01-20 - 23:50:00 - csütörtök
5 - 1642774200 - 2022-01-21 - 15:10:00 - péntek
5 - 1642797600 - 2022-01-21 - 21:40:00 - péntek
5 - 1642805400 - 2022-01-21 - 23:50:00 - péntek

Valami ilyesmire:

4 - 1642687800 - 2022-01-20 - csütörtök   15:10:00
4 - 1642711200                                           21:40:00
4 - 1642719000                                           23:50:00
5 - 1642774200 - 2022-01-21 - péntek       15:10:00
5 - 1642797600                                           21:40:00
5 - 1642805400                                           23:50:00

Esetleg...

2022-01-20 - csütörtök
4 - 1642687800 - 15:10:00
4 - 1642711200 - 21:40:00
4 - 1642719000 - 23:50:00

2022-01-21 - péntek
5 - 1642774200 - 15:10:00
5 - 1642797600 - 21:40:00
5 - 1642805400 - 23:50:00

Jelenleg ez működik. 

while read -r Epoch; do
    HN="$(date --date @"${Epoch}" +'%u')"
    yhn="$(date --date @"${Epoch}" +'%F')"
    op="$(date --date @"${Epoch}" +'%T')"
    nap="$(date --date @"${Epoch}" +'%A')"
    echo "${NC}${HN} - ${Yellow}${Epoch} - ${Green}${yhn} - ${Cyan}${op} - ${White}${nap}"
done <<< "epoch.txt

A date parancsba nem tudom beilleszteni a színeket. Persze gyorsabb színek nélkül, de így is összefolyik. Létezik valami megoldás?

Hozzászólások

Szerkesztve: 2022. 01. 19., sze – 21:11

splitDate() {
  if [ $# -eq 1 ]; then
    IFS=" " read HN yhn op nap <<< $1
  fi
  }

splitDate "$(date +"%u %F %T %A" --date @$Epoch)"
 

echo "${NC}${HN} - ${Yellow}${Epoch} - ${Green}${yhn} - ${Cyan}${op} - ${White}${nap}"

Vááó. Köszi. Azért érnek még meglepetések. Csak most próbálom meg is érteni. Tehát egy while cikluson belüli szubrutin. (Nem is tudtam hogy lehet.) Amely egy adatbázisba gyűjti az adatokat az IFS mezőhatárolóval beállított szóközzel elválasztva. Eddig jutottam. A többihez kis segítség még nem ártana. Lecserélhető-e az a $1?

Ugyanis a nehézséget majd az okozza, hogy a szkript amibe bele szeretném rakni, az már lefoglalta a $1 -et, mivel az csak "paraméterrel, (argumentummal, kapcsolóval)" indul . S ez alapból ugye a $1. Futtatása program -a, program -d, program -s, program-h. Paraméter nélkül súgó jön be. 

> A date parancsba nem tudom beilleszteni a színeket.

Miért nem?

NC=$'\e[m'
Yellow=$'\e[33m'
Green=$'\e[34m'
Cyan=$'\e[35m'
White=$'\e[37m'
date "+${NC}%u - ${Yellow}%s - ${Green}%F - ${Cyan}%T - ${White}%A"