Например, если есть dir 3:
mkdir 4; cp file 4
dir
также можно назвать 3 other text
Тем не менее, текст не должен быть в mkdir 4
кроме увеличенного числа. Наибольшее число должно быть обнаружено.
Например, если есть dir 3:
mkdir 4; cp file 4
dir
также можно назвать 3 other text
Тем не менее, текст не должен быть в mkdir 4
кроме увеличенного числа. Наибольшее число должно быть обнаружено.
Предположим, у вас есть последовательно пронумерованные каталоги, такие как: ' dirnameN
',
где « N
» - это число.
Вы можете найти наибольшее число (из родительского каталога),
find . -type d -name dirname\* | sed 's|dirname||' | sort -n | tail -1
Таким образом, вы используете шаблон в именах каталогов, чтобы отфильтровать его (с помощью « sed
») и оставить номер.
Затем вы сортируете численно, чтобы найти последний номер.
После этого вы добавите один к этому и перейдете к следующему каталогу, используя тот же шаблон.
Скажи что-то вроде
dirnamePattern=dirname lastDirname=11 newDirname=$((lastDirname+1)) newDirname=${dirnamePattern}${newDirname}
даст вам « dirname12
».
Следующее должно сделать вещь в одной строке:
mkdir $(($(find . -type d | sed -e 's/[^0-9]*//g' | sort -n | tail -n 1)+1))
Учитывая папки:
1 something
3 other text
some 5 thing
2 test
это создает папку с именем 6
.
Если вы хотите скопировать файл с именем file
, просто сделайте что-то вроде этого:
name=$(($(find . -type d | sed -e 's/[^0-9]*//g' | sort -n | tail -n 1)+1)); mkdir $name; cp file $name