Bash - Jak pobrać string ostatnich 5 znaków pliku tekstowego?

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
mes mariusz
Wytworny Kaczor
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?

Post autor: mes mariusz »

Jak pobrać string ostatnich 5 znaków pliku tekstowego (np "44,50") a następnie obliczyć działanie 100 - string skonwertowany do liczby?
Awatar użytkownika
wytrzeszcz
Sędziwy Jeż
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?

Post autor: wytrzeszcz »

nie mam teraz linuxa ale chyba

Kod: Zaznacz cały

echo "100 - `cat plik | tail -c5 | sed 's/,/./g' `" | bc 

Kod: Zaznacz cały

cat plik | tail -c5
 
robi robotę
pomoże Ci

Kod: Zaznacz cały

man tail
man sed
man bc
man awk
man grep
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
mes mariusz
Wytworny Kaczor
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?

Post autor: mes mariusz »

Zaraz spróbuję tak jak powyżej.
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
/home/mariusz/cpu.log

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
-- 04 lis 2014 19:14 --

To działa świetnie:

Kod: Zaznacz cały

echo "100 - `sar -u 2 5 | tail -c6 | sed 's/,/./g' `" | bc
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.
Awatar użytkownika
wytrzeszcz
Sędziwy Jeż
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?

Post autor: wytrzeszcz »

ja tam sedem , na . zamieniałem

Kod: Zaznacz cały

sed 's/,/./g'
a pod plik co dałeś to

Kod: Zaznacz cały

tail -n1 | awk '{print $8 }'
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Amazon [Bot] i 6 gości