Требуется разработать и установить в системе свою собственную команду терминала, которая принимает на вход путь до директории и строку с расширением файла. Скрипт или программа должна добавить это расширение к именам всем файлов в заданной директории, если содержимое файла начинается с цифры
Сам код необъёмный и достаточно простой:
#!/bin/bash
#1 - path
#2 - type
cd $1
n=(0 1 2 3 4 5 6 7 8 9)
for var in $(ls)
do
for num in ${n[*]}
do
if [ "$( head -c 1 $var )" == "$num" ]
then
mv $var $var.$2
break
fi
done
done
#!/bin/bash
указывает системе, где искать программу, которая будет исполнять скрипт#1 - path
и#2 - type
- Комментарии, указывающие что вводится пользователем в параметрыcd $1
- Переход в нужную директорию для дальнейшего выполнения скриптаn=(0 1 2 3 4 5 6 7 8 9)
- Объявление набора чисел для проверки
for var in $(ls)
do
for num in ${n[*]}
do
if [ "$( head -c 1 $var )" == "$num" ]
then
mv $var $var.$2
break
fi
done
done
Далее расмотрим цикл, решающий нашу задачу. Внешний цикл отвечает за пробегание по файлам в директории. Вложенный цикл сравнивает первый символ в файле с цифрами из набора. Если есть совпадение, скрипт меняет название файла и заканчивает вложенный цикл.
Этот скрипт можно написать разными способами. Можно как короче, так и длинее. Другиие варианты можно найти в репозиториях организации.