awk script - cel mai mare numar
Last Updated: Dec 03 2015 15:44, Started by
sorin86
, Dec 02 2015 17:44
·
0
#1
Posted 02 December 2015 - 17:44
Salut,
Am si eu o mica necunoscuta intr-un script: Am un fisier.txt cu cateva numere si data curenta: ex. fisier.txt 102 2015-12-01 00:00 123 2015-12-01 00:01 454 2015-12-01 00:02 22 2015-12-01 00:03 3 2015-12-01 00:04 5466 2015-12-01 00:05 Si vreau sa imi afiseze linia cu cel mai mare numar plus ora 00:05. awk 'BEGIN {max = 0} {if ($1>max) max=$1} END {print max}' fisier.txt Dar imi afiseaza doar 5466 nu si 00:05 |
#2
Posted 02 December 2015 - 18:23
Salveaza linia care contine maximul.
Asta tine de programare, nu de awk. |
#4
Posted 03 December 2015 - 00:48
$ cat test.txt
102 2015-12-01 00:00 123 2015-12-01 00:01 454 2015-12-01 00:02 22 2015-12-01 00:03 3 2015-12-01 00:04 5466 2015-12-01 00:05 $ awk 'BEGIN {max = 0} {if ($1>max) max=$1} END {print max,$NF}' test.txt 5466 00:05 |
#5
Posted 03 December 2015 - 09:31
@mufa. Scriptul tau afiseaza ora de pe ultima linie. In cazul de fata este doar o intamplare.
@OP. Uite un exemplu de cum sa salvezi toata linia si care este conform cu o parte din cerinta. Vezi comentariile despre cerinta mai jos. awk 'BEGIN{max=0}{if($1>max){max=$1;text=$0}}END{print text}' In schimb cerinta este ambigua: Quote Si vreau sa imi afiseze linia cu cel mai mare numar plus ora 00:05. Cand zici linia, te referi la toata informatia de pe linie. In schimb din exemplul tau se intelege cu totul alta cerinta. Intai trebuie sa decizi ce vrei. |
#6
Posted 03 December 2015 - 10:29
#7
Posted 03 December 2015 - 14:09
Eu aș sorta fișierul și aș afișa ultima (sau prima) linie. Fără awk.
|
#8
Posted 03 December 2015 - 15:44
Ms mult @Cy_Cristian, merge perfect scriptul. Eu am gasit si ceva de genu' :
awk '$1 > max { max = $1; output = $2 } END { print max,output }' file.txt Cheers pentru raspunsuri. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users