Portál AbcLinuxu, 9. května 2025 03:13
Ř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.