|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Valentin Davydov 2:5020/400 14 Aug 2000 09:33:53 To : All Subject : Re: Скриптец подскажвте -------------------------------------------------------------------------------- > From: Daniel Elovkoff <Daniel.Elovkoff@p7.f1085.n5030.z2.fidonet.org> > Date: Sat, 12 Aug 2000 14:31:54 +0400 > > VD> Через read. Поскольку, как ты мог заметить, ls выдаёт файлы ровно в том > VD> порядке, в котором расположены соответствующие строчки в дескрипшине. > >А если такой случай: имеем 0001.xxx и 0099.xxx, и строчек >в description.file соотвественно 99, но нам нужно взять >1-ю и 99-ю. Тогда, ты прав, лучше awk/perl. > VD> (for i in *; do read d && mv -f $i $d${i##*.}; done) < description.file > >Hо однострочные решения - это несомненно хорошо. Кстати >а почему не просто "mv -f $i $d" ? В исходной задаче упоминались расширения (я счёл расширением то, что после последней точки). Возможно, следовало написать $d.${i##*.}. >Hу я имел ввиду только для взятия строки заданного номера. > >cat description.file | awk "BEGIN { lc=0 } // { if (lc==$num) { echo $1 }}" > >Возможно это убого, т.к. с awk'ом я практически не знаком. Познакомься, прикольный язык. В частности, взять n-ю строчку из файла будет awk "FNR==$n" file, то есть существенно короче, чем tailом/headом. Вал. Дав. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/6577f068f283.html, оценка из 5, голосов 10
|