Запомняне

» Здравейте
[ Вход :: Регистриране ]
 » Начало » Li Форуми » Help & Support » Общи Проблеми и Въпроси » Преименуване на множество файлове.
Тема: Преименуване на множество файлове.
Мнение #1 Skip to the next post in this topic.
Написано на: Август 25 2008, 20:13

No avatar chosen




Група: Li fans
Мнения: 74
Регистриран: Ноември 2007

Оценка: няма

Offline
Здравейте!
Навярно въпроса ми е доста тъп, но след продължителна неуспешна борба реших да потърся помощ!
Искам да преименувам множество от файлове с различни имена, но с някакъв общи за всички признак. Например последни три букви или някакви букви или цифри в самото име на файла във всички еднакви за да бъдат ползвани като маркери.
Код: 

Stargate SG-1 [3x06] Point Of View 350-AC3-AMC.txt
Stargate SG-1 [3x07] Deadman Switch 350-AC3-AMC.sub
Stargate SG-1 [3x08] Demons 350-AC3-AMC.txt
Stargate SG-1 [3x09] Rules Of Engagement 350-AC3-AMC.srt

В покзазния пример първите двадесет символа са еднакви. От множеството файлове трябва да изберем само тези които завършват на txt и да бъдат преименовани на съответния файл като последните символи станат sub. Това може ли да стане с една команда от конзолата на веднъж за всички?!!
Контакти:  GeOrg
WEB  
Мнение #2 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 26 2008, 13:57

Avatar




Група: Li fans
Мнения: 763
Регистриран: Февруари 2008

Оценка: 5

Offline
#!/bin/bash

path=$1
ext=$2

for i in `find $1 -name '*.$2'`; do
mv $i `cut -d '.' -f1 $i`.sub

done

#недостатък на този скрипт е, че файловете не трябва да имат повече от 1 точка, сещам се за вариант как може това да не е пречка, но в момента нямам време да го напиша, прави се със sed или с awk. когато се поосвободя ще го довърша.
дано някой perl писач, се намеси..

Редактирано от altoas на Август 26 2008, 14:02

Контакти:  altoas

  • AOL  AOL:
  • ICQ  ICQ:
  • MSN  MSN:
  • YIM  Yahoo IM:
Мнение #3 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 26 2008, 15:03

Avatar




Група: Li maniacs
Мнения: 489
Регистриран: Юли 2005

Оценка: 5

Offline
Ако имаш командата rename с нея е по-лесно:

Код: 
man rename
Контакти:  Zero_effect

  • AOL  AOL:
  • ICQ  ICQ: 94584818
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Мнение #4 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 27 2008, 08:34

No avatar chosen




Група: Li fans
Мнения: 74
Регистриран: Ноември 2007

Оценка: няма

Offline
Благодаря и на двама Ви!
Справих се. Чрез командата rename действително е по лесно. В тази връзка следващия въпрос ми е има ли команда която да ивежда списък на достъпните команди от конзола. В смисъл че ако знаех такава навярно сам щях да се спра на rename най-малко по самия и смисъл. От година ползвам Linux Mandriva и вече започвам да се човъркам и чрез конзолата, и изпитвам трудности при работа с командите. Най-неприятното е че трябва да знаеш командите, а не може да потърсиш помощ за тях без да знаеш наименованията им.
Контакти:  GeOrg
WEB  
Мнение #5 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 27 2008, 09:57

Avatar




Група: Li fans
Мнения: 763
Регистриран: Февруари 2008

Оценка: 5

Offline
за да намериш команда ползвай: apropos <what?>
info - дава информация за програмите на GNU coreutils

Контакти:  altoas

  • AOL  AOL:
  • ICQ  ICQ:
  • MSN  MSN:
  • YIM  Yahoo IM:
Мнение #6 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 27 2008, 12:52

Avatar




Група: Li fans
Мнения: 39
Регистриран: Май 2007

Оценка: няма

Offline
А ето и моят rmv (regexp mv) :60; - http://www.i-nz.net/files/projects/python-hacks/rmv

Code Sample: 
rmv "(Stargate SG-1.*).txt" "\1.sub"


Редактирано от i-nZ на Август 27 2008, 12:58

Ivan N. Zlatev

Web: http://www.i-nZ.net
"It's all some kind of whacked out conspiracy."
Контакти:  i-nZ
WEB  
Мнение #7 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 30 2008, 15:24

No avatar chosen




Група: Li fans
Мнения: 258
Регистриран: Януари 2008

Оценка: няма

Offline
Цитат: (GeOrg @ Август 27 2008, 08:34)

Благодаря и на двама Ви!
Справих се. Чрез командата rename действително е по лесно. В тази връзка следващия въпрос ми е има ли команда която да ивежда списък на достъпните команди от конзола. В смисъл че ако знаех такава навярно сам щях да се спра на rename най-малко по самия и смисъл. От година ползвам Linux Mandriva и вече започвам да се човъркам и чрез конзолата, и изпитвам трудности при работа с командите. Най-неприятното е че трябва да знаеш командите, а не може да потърсиш помощ за тях без да знаеш наименованията им.

echo $PATH
тази команда извежда списък с директории в които се намират програмите(командите) ,достъпни под конзола.Ако ти се занимава и поназнайваш Английски език можеш с командата 'man <команда>' да разбереш всеки един изпълним файл в тези директории за какво служи и какви са неговите опции.
Контакти:  AZ ZERGA
WEB  
Мнение #8 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 31 2008, 18:04

Avatar




Група: Li fans
Мнения: 763
Регистриран: Февруари 2008

Оценка: 5

Offline
1. не за всеки изпълним файл има man
2. по удобно е да влезе в /usr/share/man
и да си ги чете от там
още по удобно е да ползва man и да преглежда менютата им,
а най - удобно е с
whatis <name>
да преглежда за всяка команда дали има ман, като изхода е във вид name(man section) - description

за уточнение PATH, може да се променя и да се задава за всеки потребител, така че не е кой знае какъв критерий.

Контакти:  altoas

  • AOL  AOL:
  • ICQ  ICQ:
  • MSN  MSN:
  • YIM  Yahoo IM:
Мнение #9 Skip to the next post in this topic.
Skip to the previous post in this topic. Написано на: Август 31 2008, 21:01

Avatar




Група: Li maniacs
Мнения: 489
Регистриран: Юли 2005

Оценка: 5

Offline
През help-а на GNOME също могат да се четат, даже е значително по-удобно, защото не трябва да знаеш коя част на man какъв тип документации съдържа.

Редактирано от Zero_effect на Август 31 2008, 21:03
Контакти:  Zero_effect

  • AOL  AOL:
  • ICQ  ICQ: 94584818
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Мнение #10
Skip to the previous post in this topic. Написано на: Август 31 2008, 21:51

No avatar chosen




Група: Li fans
Мнения: 258
Регистриран: Януари 2008

Оценка: няма

Offline
Истината е че трябва да прочетеш доста документация за да познаваш голяма част от командите и то само тези ,които са ти необходими.Аз също както Zero_effect искам да разбирам перфектно езикът за програмиране С,ама без четене не става.За това в момента само си чешем езиците :P .Който иска знания - да си сяда на задника и да започва да чете,ама здравата,иначе не става   :17;
Контакти:  AZ ZERGA
WEB  
Общо 9 отговор(а) от Август 25 2008, 20:13 до сега
 » Начало » Li Форуми » Help & Support » Общи Проблеми и Въпроси » Преименуване на множество файлове.

© 2014 Linux Index Project
Powered by iF 1.0.0 © 2006 ikonForums