А-ч, информация взяла с собой texi2ps
и texi2pdf
программы.
Таким образом, при нахождении информационного источника (info.texi), можно генерировать красивый (или чрезмерно увеличенный в размере, в зависимости от точки зрения) использование PDF:
texi2pdf info.texi
Следующий сценарий делает это:
#!/bin/bash
INDIR=/path/to/where/your/file/is/stored
OUTDIR=/path/to/where/you/want/your/folders/to/be/created
# In the following line, 10 is the number of folders/files that will be created. -w means append a 0 before the numbers: 01 02 03 ... 10, instead of 1 2 3 ... 10. You can remove it if you want.
for i in `seq -w 1 10`; do
mkdir ${OUTDIR}/201311261418${i}
cp ${INDIR}/201311261418.eob ${OUTDIR}/201311261418${i}.eob
done
Ваш вопрос не очень ясен. Если я понимаю правильно, Вы хотите создать несколько копий файла, добавляя число в конце имени, но сохраняя расширение.
#!/bin/ksh
n=$1; shift
ret=0
for file; do
# Decompose the file name to isolate the extension part
dir=$(dirname -- "$file")
file=$(basename -- "$file")
base=${file%%.*}
extension=${file#"$base"}
# Make $n copies
for ((i=1; i<=n; i++)); do
cp -- "$dir/$base$extension" "$dir/$base$i$extension" || ret=1
done
done
exit $ret
Использование (где make-copies
сценарий выше):
make-copies 10 201311261418 201311261418.eob
Можно хотеть добавить разделитель перед числом, например.
cp -- "$dir/$base$extension" "$dir/$base-$i$extension" || ret=1
Если Вы хотите заполнить число, обнуляет так, чтобы они имели ту же ширину, изменили начало сценария к
#!/bin/ksh
n=$1; shift
start=1${n//?/0}
…
и замените внутренний цикл
for ((i=$((start+1)); i<=$((start+n)); i++)); do
cp -- "$dir/$base$extension" "$dir/$base${i#1}$extension" || ret=1
done
ksh: 0403-057 Syntax error:
(' не ожидается'.
– Ram
04.12.2013, 14:09
for ((…))
строка? AIX все еще не имеет ksh93? Попробовать i=1; while [[ $i -le $n ]]; do … i=$((i+1)); done
– Gilles 'SO- stop being evil'
04.12.2013, 14:12
seq
утилита на AIX. – Gilles 'SO- stop being evil' 03.12.2013, 00:16seq -w 1 10
; сделайте" для "поскольку я в 0 1 2 3 4 5 6 7 8 9 10; сделайте" или замените его "поскольку я в {1.. 10}; сделайте" – Vincent 03.12.2013, 01:19for i in {1..10}; do echo $i done
Вывод как дан ниже{1..10}
– Ram 04.12.2013, 14:05