Portál AbcLinuxu, 10. května 2025 16:33
Řešení dotazu:
longest="" while read line; do if [[ ${#line} -gt ${#longest} ]]; then longest=$line fi done < soubor.txt echo $longest
#!/bin/bash
longest=""
while read line; do
line=`line | cut -d: -f5 | tr ',,,' ' '`
if [[ ${#line} -gt ${#longest} ]]; then
longest=$line
fi
done < passwd
echo $longest
a funguje. Díky. ikdyz ted koukam ze to nefunguje... v seznamu:
Alexey Koloskov
Brezina Dominik
Fiam Jiri
Ivanov Dmitrij
Jan Koller
Jaroslav Roztocil
Jiri Cejp
to reklo ze je nejdelsi jmeno "Brezina Dominik"
tr
. Ak si ním chcel dosiahnuť odstránenie troch čiarok, tak tak tr nefunguje.
Ok, odstranil sem to, a pak to vypadá nějak takto:
Ales Nemecek,,,
Alexey Koloskov,,,
Brezina Dominik,,,
Fiam Jiri,,,
Ivanov Dmitrij,,,
Jan Koller,,,
Jaroslav Roztocil,,,
Jiri Cejp,,,
a stejne to najde jako nejdelsi "Brezina Dominik,,,"
$ while read line; do if [[ ${#line} -gt ${#longest} ]]; then longest=$line; fi; done
Ales Nemecek,,,
Alexey Koloskov,,,
Brezina Dominik,,,
Fiam Jiri,,,
Ivanov Dmitrij,,,
Jan Koller,,,
Jaroslav Roztocil,,,
Jiri Cejp,,,
$ echo $longest
Jaroslav Roztocil,,,
$
Niečo robíš zle.
line: command not foundKdyž chybu odstraním:
#!/bin/bash longest="" while read line; do line=`echo $line | cut -d: -f5` if [[ ${#line} -gt ${#longest} ]]; then longest=$line fi done <<EOF Ales Nemecek,,, Alexey Koloskov,,, Brezina Dominik,,, Fiam Jiri,,, Ivanov Dmitrij,,, Jan Koller,,, Jaroslav Roztocil,,, Jiri Cejp,,, EOF echo $longest echo "a stejne to najde jako nejdelsi \"Brezina Dominik,,,\"" echo "Oh, really???"
bash$ ./longest.sh Jaroslav Roztocil,,, a stejne to najde jako nejdelsi "Brezina Dominik,,," Oh, really???
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.