- подсчет входных файлов, phpcoder, 12:45 , 13-Май-10 (1)
>Я набрасала код, но выдает ошибку.Какую? >ls > f1 >x=$(wc -l f1) >echo $x >if ($x%2==1)
Наверное, здесь? Попробуйте заменить на if [ `expr $x % 2` -eq 1 ] >then >cat *.txt >chet >echo "chet" >else >cat *.txt >nechet >echo "nechet" >fi - подсчет входных файлов, phpcoder, 12:55 , 13-Май-10 (2)
>[оверквотинг удален] >x=$(wc -l f1) >echo $x >if ($x%2==1) >then >cat *.txt >chet >echo "chet" >else >cat *.txt >nechet >echo "nechet" >fi В вашем коде, похоже, есть ошибка: вы считаете все файлы, а добавляете содержимое только файлов, с расширением txt Предлагаю свой вариант: find . -type f -name '*.txt' | ( rm -f {result,chet,nechet} CNT=0 while read F; do CNT=$(expr $CNT + 1) cat "$F" >>result done if [ $(expr $CNT % 2) -eq 0 ]; then mv -vf result chet else mv -vf result nechet fi )
- подсчет входных файлов, allez, 13:01 , 13-Май-10 (3)
>[оверквотинг удален] >x=$(wc -l f1) >echo $x >if ($x%2==1) >then >cat *.txt >chet >echo "chet" >else >cat *.txt >nechet >echo "nechet" >fi Ну что же, разжевывать и в ротик класть не стану, но подсказку дам. :-)
$ ls *.txt de-en.txt file.txt log.txt$ let x=$(ls *.txt | wc -l)%2; echo "x = $x"; if [ "$x" = "0" ]; then echo "Even"; else echo "Odd"; fi x = 1 Odd
А теперь разбирайтесь в тех командах, которые я ввел в консоли - в них содержится почти полное решение вашей задачки. Заодно попробуйте найти ошибку в своем скрипте. ;-) P. S. Эх, phpcoder малость меня опередил и не умничая показал на ошибку пальцем. :-)
|