Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Переименовывание папок / 5 сообщений из 5, страница 1 из 1
16.12.2014, 14:59
    #38835140
Dimka1995
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переименовывание папок
Всем привет!

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

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

one-eine, и .д. извните, не учил немецкий
...
Рейтинг: 0 / 0
16.12.2014, 15:33
    #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
18.12.2014, 05:41
    #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
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Переименовывание папок / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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