Bash - Jak pobrać string ostatnich 5 znaków pliku tekstowego?
-
- Wytworny Kaczor
- Posty: 294
- Rejestracja: 11 mar 2009, 16:49
- Płeć: Mężczyzna
- Wersja Ubuntu: 18.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Bash - Jak pobrać string ostatnich 5 znaków pliku tekstowego?
Jak pobrać string ostatnich 5 znaków pliku tekstowego (np "44,50") a następnie obliczyć działanie 100 - string skonwertowany do liczby?
- wytrzeszcz
- Sędziwy Jeż
- Posty: 47
- Rejestracja: 27 mar 2008, 21:13
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Kontakt:
Re: Bash - Jak pobrać string ostatnich 5 znaków pliku tekstowego?
nie mam teraz linuxa ale chyba
robi robotę
pomoże Ci
grep z opcjami -oE też cuda robi ... trochę mało wiem o pliku ale pokazałem jak znaleźć 5 ostatnich znaków
tak wiem bc ssie bo bash sam liczy ale te nawiasy to jakaś masakra
Kod: Zaznacz cały
echo "100 - `cat plik | tail -c5 | sed 's/,/./g' `" | bc
Kod: Zaznacz cały
cat plik | tail -c5
pomoże Ci
Kod: Zaznacz cały
man tail
man sed
man bc
man awk
man grep
tak wiem bc ssie bo bash sam liczy ale te nawiasy to jakaś masakra
-
- Wytworny Kaczor
- Posty: 294
- Rejestracja: 11 mar 2009, 16:49
- Płeć: Mężczyzna
- Wersja Ubuntu: 18.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Re: Bash - Jak pobrać string ostatnich 5 znaków pliku tekstowego?
Zaraz spróbuję tak jak powyżej.
Póki co próbowałem w ten sposób:
/home/mariusz/scripts/cpu.sh
/home/mariusz/cpu.log
-- 04 lis 2014 19:14 --
To działa świetnie:
Jeszcze tylko jeden szkopuł - parametr "6" w tail -c6
Chodzi o to, że Idle może przyjmować wartości 6, 5 i 4 cyfrowe równie dobrze, w zależności od obciążenia procesora.
Póki co próbowałem w ten sposób:
/home/mariusz/scripts/cpu.sh
Kod: Zaznacz cały
#!/bin/bash
LICZBA=`tail -c 6 /home/mariusz/cpu.log`
echo $LICZBA
WYNIK=`echo "100-$LICZBA" | bc`
echo $WYNIK
Kod: Zaznacz cały
Linux 3.13.0-24-generic (net) 04.11.2014 _i686_ (1 CPU)
18:51:50 CPU %user %nice %system %iowait %steal %idle
18:51:52 all 0,00 0,00 1,52 0,00 0,00 98,48
18:51:54 all 1,01 0,00 1,51 0,00 0,00 97,49
18:51:56 all 0,51 0,00 0,51 2,54 0,00 96,45
18:51:58 all 0,50 0,00 1,01 0,00 0,00 98,49
18:52:00 all 0,00 0,00 1,02 0,00 0,00 98,98
Średnia: all 0,40 0,00 1,11 0,51 0,00 97,98
Kod: Zaznacz cały
root@net:/home/mariusz# /home/mariusz/scripts/cpu.sh
97,98
(standard_in) 1: syntax error
To działa świetnie:
Kod: Zaznacz cały
echo "100 - `sar -u 2 5 | tail -c6 | sed 's/,/./g' `" | bc
Chodzi o to, że Idle może przyjmować wartości 6, 5 i 4 cyfrowe równie dobrze, w zależności od obciążenia procesora.
- wytrzeszcz
- Sędziwy Jeż
- Posty: 47
- Rejestracja: 27 mar 2008, 21:13
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Kontakt:
Re: Bash - Jak pobrać string ostatnich 5 znaków pliku tekstowego?
ja tam sedem , na . zamieniałem
a pod plik co dałeś to
Kod: Zaznacz cały
sed 's/,/./g'
Kod: Zaznacz cały
tail -n1 | awk '{print $8 }'
Kto jest online
Użytkownicy przeglądający to forum: Amazon [Bot] i 6 gości