Portál AbcLinuxu, 4. prosince 2025 18:31
Ř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.
Jeste mi ted kamarad poradil, ze to jde asi i pomoci "wc -L"
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.