LINUX.ORG.RU

Поиск и замена файла.


0

1

Всем здрям. Вроде бы просто но что то я совсем не могу сообразить. Имеется директория в которой содержаться файлы [0-9].sql мне необходимо написать скрипт который бы находил последний файл по номеру (в принципе он последний и по дате создания но это не факт) и создавал новый с номером на 1 больше. Я наклепал какую то ерунду:

FILE=`ls -t | grep -i [0-9] | head -1` | echo `expr substr $FILE 1 2`
И ничего умнее придумать не могу. :-(

★★★★★

Как-то так:

touch $(expr `ls | sed '/[0-9]*.sql/s/.sql$//' | sort | tail -n1` + 1).sql

файлы [0-9].sql

Наверное, «[0-9]*.sql»? Их же не 10 всего?

gentoo_root ★★★★★
()
Ответ на: комментарий от splinter

>expr: нецелочисленный аргумент

УМВР. Попробуй кавычки вокруг ``: «`ls | .....`» и заэкранировать '+' так: '\+'. Какой шелл? И да, вывод «ls | sed '/[0-9]*.sql/s/.sql$//' | sort | tail -n1» в студию.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

Баг-фикс

Тут ещё регулярка неправильная:

touch $(expr `ls | sed '/^[0-9]*.sql$/s/.sql$//' | sort | tail -n1` + 1).sql

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

splinter@sprogrammer:~/src/skip/sql/skip-common$ echo $SHELL

/bin/bash

splinter@sprogrammer:~/src/skip/sql/skip-common$ ls | sed '/[0-9]*.sql/s/.sql$//' | sort | tail -n1

updatesql.sh

splinter ★★★★★
() автор топика

всегда упрощал подобное именуя файлы prefix-$(date +%F).ext

fr_butch
()
Ответ на: комментарий от gentoo_root

Что то не въеду, почему так не работает:

FILE=`ls -Rt | grep -i [0-9] | head -1` | NUM=`expr substr $FILE 1 2` | echo $NUM
а так работает
FILE=`ls -Rt | grep -i [0-9] | head -1` | echo `expr substr $FILE 1 2`

splinter ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.