powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Переименовывание папок
5 сообщений из 5, страница 1 из 1
Переименовывание папок
    #38835140
Dimka1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Ребята,помогите пожалуйста необходимо На языке unix shell написать программу, которая переводит имена подкаталогов текущего каталога в с английского на немецкий, используя словарь вида:
english<space>german. Словоформы не учитывать,используя цикл find/ Буду очень благодарен
...
Рейтинг: 0 / 0
Переименовывание папок
    #38835178
Фотография bga83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimka1995используя словарь вида:
english<space>germanчто за этим стоит?

PS сессия надвигается? прочти вот это 12561782
...
Рейтинг: 0 / 0
Переименовывание папок
    #38835183
Dimka1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bga83,
заранее создан файл,где прописаны соответствия

one-eine, и .д. извните, не учил немецкий
...
Рейтинг: 0 / 0
Переименовывание папок
    #38835186
Dimka1995
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimka1995,

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#!/bin/bash
for i in *; do 
if [ -d "$i" ]; then
if [ $i == $(grep $i names.txt | cut -d ' ' -f 1) ]; then 
mv $i $(grep $i names.txt | cut -d ' ' -f 2) 
else 
echo "The word $i wasn't found in the dictionary"
fi
fi
done


Этот код не подходит, т.к. переименовывает только папки, состоящие не более чем из одного слова
...
Рейтинг: 0 / 0
Переименовывание папок
    #38836569
тостер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimka1995,
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
#!/bin/bash

# файл словаря
DICTIONARY="names.txt"           
# каталог в котором осуществить переименования
WHERE="."
# файл лога, если существует - будет перзаписан
LOG="mvlog$(date +'%Y%m%d%H%M%S').txt"

[ -f "$DICTIONARY" ] || { echo 'Не найден словарь.'; exit 1; }
[ -d "$WHERE" ] || { echo 'Не найден каталог.'; exit 2; }

rm -f "$LOG" >/dev/null 2>&1

WHERE="${WHERE%'/'}/"
MVCMD='"mv -v \x22'"$WHERE"'" oldname "\x22 \x22'"$WHERE"'" $0 "\x22 >>\x22'"$LOG"'\x22 2>&1"'

find "$WHERE" -mindepth 1 -maxdepth 1 -type d -printf %P'\n' | gawk '

# если захочется заменить пробелы в названиях на подчеркивания
# раскомментировать секцию `BEGIN`
# BEGIN { OFS="_" }

{
  if (FILENAME == "'"$DICTIONARY"'") { d[$1] = $2; next }
  
  oldname = $0; move = 0
  for ( f = 1; f <= NF; f++ ) if ($f in d) { $f = d[$f]; move = 1 }
  
  if (move) {
    # проверка что получится
    print '"$MVCMD"'

    # переименование
    # system('"$MVCMD"')
  }
}
' "$DICTIONARY" -

...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Переименовывание папок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]