Ondersteuning > Programmeren
Zoeken in een regel tekst met bash
(1/1)
hansvl:
Als input krijg ik strings als:
OK - System Uptime is 00:06:32 (6min).|'Uptime Seconds'=392.03s; 'Uptime Minutes'=6min; 'Uptime Hours'=0.1hours;
'Uptime Days'=0.00416666666666667days;
of
OK - System Uptime is 19 days 21:52:25 (28672min).|'Uptime Seconds'=1720345.83s; 'Uptime Minutes'=28672min; 'Uptime
Hours'=477.866666666667hours; 'Uptime Days'=19.9111111111111days;
In beide gevallen wil ik het aantal dagen na 'Uptime Days' hebben.
In deze voorbeelden dus 0.00416666666666667 of 19.9111111111111
Hoe kan ik in een bash script dat aantal dagen er uit halen?
In het tweede voorbeeld lukt dat met cut -d ' ' -f 16,17 | tr -d "Days\'=" | tr -d 'd;'
Maar dat werkt weer niet in het eerste voorbeeld.
Bloom:
Quick & dirty:
--- Code: ---echo $invoer|rev|cut -d'=' -f1|rev|tr -d "days;"
--- Einde van code ---
waarbij de variabele invoer je tekst bevat.
Paul Matthijsse:
Of zo:
--- Code: ---#!/bin/bash
str="System Uptime is 19 days 21:52:25 (28672min).|'Uptime Seconds'=1720345.83s; 'Uptime Minutes'=28672min; 'Uptime
Hours'=477.866666666667hours; 'Uptime Days'=19.9111111111111days;"
updays=${str#*Uptime Days\'=}
echo ${updays/days;/}
--- Einde van code ---
Geeft: 19.9111111111111
Navigatie
[0] Berichtenindex
Naar de volledige versie