Я пишу сценарий оболочки unix, который сортирует данные в десяти подкаталогах (помеченных 1-10) в домашнем каталоге. В каждом подкаталоге сценарий должен переименовывать файлы hehd.output и fort.hehd.time, а также скопировать файл hehd.data в файл .data с новым именем.Именование файла с переменной в сценарии оболочки
То, что я хотел бы это сделать, это переименовать каждый из этих файлов в следующем формате:
AA.BB.CC
Где
AA = a variable in the hehd.data file within the subdirectory containing the file
BB = the name of the subdirectory containing the file (1-10)
CC = the original file name
Каждый подкаталог содержит hehd. файл данных, и каждый файл hehd.data содержит строку ij0 = AA, где AA представляет переменную, которую я хочу использовать, чтобы переименовать файлы в том же подкаталоге.
Например: При запуске сценария следует искать /home/4/hehd.data для строки ij0 = 2, а затем перейти к /home/4/hehd.output /home/4/2.4.hehd .вывод.
В настоящее время я использую команду grep для поиска скрипта для строки ij0 = * и скопируйте ее в новый текстовый файл в подкаталоге. Затем строка ij0 = удаляется из текстового файла, а затем ее содержимое используется для переименования всех целевых файлов в том же подкаталоге. Последняя строка сценария оболочки удаляет текстовый файл.
Я ищу лучший способ для этого, желательно, чтобы все десять подкаталогов можно было отсортировать сразу одним и тем же сценарием. Мой сценарий кажется невероятно неэффективным и не делает все, что я хочу, сам по себе.
Как я могу улучшить это?
Любые советы или предложения были бы оценены; Я пытаюсь стать лучшим пользователем компьютера, а это значит, что мы должны лучше учиться.
Просьба представить фактический код, а не только английский псевдокод. Реализация детали имеет значение, и мы не можем видеть, что они есть, не читая реализацию. –
(Кроме того, в StackOverflow есть предпочтение для целенаправленных вопросов с конкретными ответами, открытые вопросы, которые могут быть истолкованы как «можно обсудить X?», Здесь не совсем приветствуются, а не вопрос «как я могу исправить проблему X? », которая имеет конкретное решение, для общего назначения« как я могу улучшить этот уже действующий код? »вопросы, см. http: //codereview.stackexchange.com/- но читайте правила сайта там, а не просто переписываете). –
... http://stackoverflow.com/help/dont-ask охватывает аналогичную территорию. –