Portál AbcLinuxu, 19. prosince 2025 14:14
Řešení dotazu:
promena="$(prikaz -parametry)"
prinf ${promena}
input=`cat << EOF subor1 3 subor1 ano subor2 2 subor2 ano subor3 0 subor3 nie subor4 13 subor4 ano EOF` a="5"; for c in $input; do if [ "$a" == "5" ]; then echo $c a="1"; fi let a++ done
count_lowercase_lines() (
shopt -s extglob
shopt -s globasciiranges
ls -S "$1" | while read item; do
if [[ -f "${1}/${item}" ]]; then
declare -i counter=0
while IFS= read line; do
if [[ "$line" = +([a-z]| ) ]]; then
((++counter))
fi
done < "${1}/${item}"
echo "${item} ${counter}"
fi
done
)
count_lowercase_lines /můj/adresář/se/soubory
ls -S1 $1 | while read JMENO_SOUBORU; do POCET_RADKU=`... zde prikaz na vyhledani radku v souboru vyhovujici podmince ...` echo $JMENO_SOUBORU $POCET_RADKU done
egrep -c '^([a-z| ]+)$' $JMENO_SOUBORUTedy cely radek uvnitr
while cyklu s vytvorenim promene POCET_RADKU takto:
POCET_RADKU=`egrep -c '^([a-z| ]+)$' $JMENO_SOUBORU`No a kdyby jsi to chtel trochu zjednodusit, tak uvnitr toho
while cyklu, misto dvou radku napises jen jeden a vysledek bude vypadat takto:
ls -S1 "$1" | while read JMENO_SOUBORU; do echo $JMENO_SOUBORU `egrep -c '^([a-z| ]+)$' $JMENO_SOUBORU` doneA nakonec, kdyby jsi nutne musel pouzit
for cyklus, tak potom takto:
for JMENO_SOUBORU in `ls -S "$1"`; do echo $JMENO_SOUBORU `egrep -c '^([a-z| ]+)$' $JMENO_SOUBORU` done
printf "%s" "`ls -S`"
když došly všechny nápady, je čas přečíst si návodobčas je to dokonce rychlejší
chytrý jak radio
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.