#!/bin/sh
cd $1
while ( true ) do
ls -p | grep -E /$
if (! pwd | grep -E ^/$) then
cd ..
else
exit
fi;
done
shell. помогите написать скрипт
может кто умеет... :o
find . -ls | awk '{ print $7, $NF }' | sort -nr -k 1,1 | head -n 15
В текущем каталоге и всех подкаталогах надо переименовать файлы, заменив все символы на строчные. Как это делается?
Цитата: squirL
find . -ls | awk '{ print $7, $NF }' | sort -nr -k 1,1 | head -n 15
а что есть в данном случае , $NF и для чего оно ?
а man awk лениво вкурить? :) $NF - это последнее поле в обрабатываемом тексте.
print $7 - т.е седьмой столбец
потом зачем $NF - т.е конец .....
Это что т.е от 7 до конца ?
find . -ls находит ВСЕ файлы текущего каталога и подкаталогов и выводит в формате, который можно посмотреть в man find. скажу только, что 8-м полем вывода будет размер в байтах, последним - путь. далее - вывод find передается на вход awk, который вырезает указанные поля и передает эти два поля на вход утилиты sort. sort - выполняет сортировку по первому переданому полю (размер) в числовом формате и передает дальше - утилите head, которая выводит первые 15 строк результата.
Понял из прочитаного что man эт круто!
Помогите пжалста...
Код:
Может быть, кто-то знает как это сделать... А то мои усилия ни к чему не привели.
не затруднит ли вас привести результаты ваших усилий, чтобы мы их подкорректировали? рассказать, какие инструменты вы использовали?
Конечно, привожу, выкладываю свой кривой исходник:
#!/bin/sh
var1=c #допустим, это нужно найти
var2=C # заменить на эту переменную
var3=$1 #задаем домашний каталог
echo $(var3:=`pwd`)
cd $var3 # открыть каталог
for i in `ls -s` #просматриваю его содержимое
do
ls -l | grep '^[^d]' #пытаюсь получить список файлов в домашнем каталоге
echo $i # вывожу файл
if [! -w "$i" ]; then # проверяю права на на запись
echo "cannot file"
else
$ tr -c [var1] [var2] < $i # заменяю
fi # конец условия
done
# теперь пытаюсь обработать подкаталоги
$ ls -l | grep '^d'
for i in `ls -s`
do
cd $i
for j in `ls -s`
do
ls -l | grep '^[^d]' # ищу файлы
echo $j # вывожу файл
if [! -w "$j" ]; then # проверяю права на на запись
echo "cannot file"
else
$ tr -c [var1] [var2] < $j # заменяю
fi
done
done
Получается полная жо... Все символы в файле удаляются.
Код:
#!/bin/sh
find $3 -type f -exec sed -i '' -e "s/$1/$2/" {} \;
find $3 -type f -exec sed -i '' -e "s/$1/$2/" {} \;
Код:
> cat test.txt
cde
> sh test.sh cde abc ./
> cat test.txt
abc
cde
> sh test.sh cde abc ./
> cat test.txt
abc
. Напишите скрипт для добавления записей в телефонный справочник и их сортировки. Справочник находится в каталоге, маршрут к которому указывается при запуске скрипта с командной строки