Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2016-02-14 11:28:39

  DeWu - Użytkownik

DeWu
Użytkownik
Zarejestrowany: 2013-03-26

Zamiana w plikach rekurencyjnie

Powóżcie panowie bo dopadła mnie totalna amnezja. Potrzebuję pozmieniać w wielu plikach znajdujacych się w katalogach i sugkatalogach wyrażenie 'logo.png' na 'obrazek.gif' Wiem, że można to zrobić jednym poleceniem grep albo sed tylko wyleciało mi to z głowy. Googlowałem i jedyne co znalazłem to albo polecenia nie działajace rekurencyjne lub jakieś dziwne pętle wykorzystujące for albo finda.

Offline

 

#2  2016-02-14 11:43:54

  pink - Użytkownik

pink
Użytkownik
Skąd: P17PY93
Zarejestrowany: 2005-09-16
Serwis

Re: Zamiana w plikach rekurencyjnie

nie wiem, ale mniemam ze to strona html????


T430 think-box 4.9-custom x86_64 Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz GenuineIntel GNU/Linux
"Doktor plama i maharadża są pod złotym leszczem." "Człowieka od zwierzęcia odróżnia ciekawość świata. Patrze słucham i wyciągam wnioski."
http://przemyslawmamon.com/
https://www.behance.net/przemyslawmamon

Offline

 

#3  2016-02-14 11:47:46

  DeWu - Użytkownik

DeWu
Użytkownik
Zarejestrowany: 2013-03-26

Re: Zamiana w plikach rekurencyjnie

Tak a właściwie cały site który dostałem do przerobienia

Offline

 

#4  2016-02-14 12:17:25

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Zamiana w plikach rekurencyjnie

Pętla jest koniecznością, jeśli chcesz przerobić kilka plików.

np

Kod:

find $PWD -type f -iname '*.html' | while read $plik; 
do sed 's/logo.png/obrazek.gif/g' $plik; done;

Przed majstrowaniem z plikami [b]zrób sobie kopię zapasową[/b], żeby nie było przypału w razie czego.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2016-02-14 12:24:13

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Zamiana w plikach rekurencyjnie

nie trzeba żadnej pętli. w skrócie:

Kod:

find cośtam -exec sed cośtam '{}' ';'

Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#6  2016-02-14 12:26:59

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Zamiana w plikach rekurencyjnie

[quote=ethanak]nie trzeba żadnej pętli. w skrócie:

Kod:

find cośtam -exec sed cośtam '{}' ';'

[/quote]
Pętla wtedy też jest, tylko wewnętrzna, wykonana przez finda dla każdego wyniku z osobna.
;)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#7  2016-02-14 12:35:09

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Zamiana w plikach rekurencyjnie

życzę powodzenia w przypadku spacji w nazwie pliku.


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#8  2016-02-14 12:41:11

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Zamiana w plikach rekurencyjnie

[quote=ethanak]życzę powodzenia w przypadku spacji w nazwie pliku.[/quote]
Pod tym warunkiem, że jakaś występuje, osobiście dawno takowego przypadku nie widziałem na serwerach www, ale zgoda, teoretycznie możliwe.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2016-02-14 13:12:42

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Zamiana w plikach rekurencyjnie

ja już nie takie rzeczy widziałem - pamiętam jak gościowi mieliśmy zgrać stronę na cd do jakiegoś pokazu. oczywiście zero wejścia na ftp, wget się wyłożył już na index.html, teleport jakoś sobie poradził ale trzeba było dopisać kawałek pythona coby zarówno nazwy jak i linki poprawić.
tak że wolę dmuchać na zimne.


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#10  2016-02-14 13:15:38

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Zamiana w plikach rekurencyjnie

W takim radziłbym zmodyfikować (wzbogacić o dodatkowego seda), tego skrypcia:

Kod:

#!/bin/bash
for f in *\ *; do mv "$f" "${f// /_}" 2>/dev/null; done;
exit 0;

Bardzo grzecznie zmienia spacje na podkreślenia w nazwach plików.

Ja pewnie dlatego plików ze spacjami nie widuję, że zazwyczaj jest jakiś skrypt  PHP, które wsio generuje w locie, albo często sam plików ze spacjami nie obrabia. :D

Ostatnio edytowany przez Jacekalex (2016-02-14 13:19:11)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#11  2016-02-14 13:23:00

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Zamiana w plikach rekurencyjnie

to też nie pomoże jeśli masz nazwy plików typu "żółć żółwia.html" kodowane w 1250 :)


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#12  2016-02-14 13:26:07

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Zamiana w plikach rekurencyjnie

[quote=ethanak]to też nie pomoże jeśli masz nazwy plików typu "żółć żółwia.html" kodowane w 1250 :)[/quote]
Na takie problemy to jest enca w repo.

https://dug.net.pl/drukuj/124/%C5%82atwa_konwersja_z_iso_do_utf8___i_nie_tylko/


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#13  2016-02-14 13:29:14

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Zamiana w plikach rekurencyjnie

pierwsze słyszę o wbudowaniu enca do wgeta...


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#14  2016-02-14 13:31:19

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Zamiana w plikach rekurencyjnie

[quote=ethanak]pierwsze słyszę o wbudowaniu enca do wgeta...[/quote]
A kto tobie każe do wgeta?

Takie rzeczy to się na serwerze robi, gdzie taki bajzel urzęduje.
Poza tym i tak wolę rsynca, jeżeli da się go użyć.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#15  2016-02-14 13:47:54

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Zamiana w plikach rekurencyjnie

ech... chyba nie byłeś jeszcze w sytuacji klient - handlowiec - szef - programista...
handlowiec naobiecywał bajek, klient dostępów nie da bo nawet jakby chciał (a nie chce) to i tak jego informatyk jest na urlopie i hasła są jego słodką tajemnicą, szef się wkurwia bo debil handlowszczyk już umowę podpisał no a ethanak ma ten syf ogarnąć bo za trzy godziny przyjeżdża koleś od klienta żeby mu płytkę zawieźć na lotnisko bo wyjeżdża do sierra leone gdzie internet ma tylko król i naczelny minister od sprawiedliwości...


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#16  2016-02-14 14:01:04

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Zamiana w plikach rekurencyjnie

Przypały to ja miałem podobne, w różnych dziedzinach.
W każdym razie do handlowców trzeba mieć troszkę asertywności.

Co do pliku typu "żażółć gęślą jaźń" w CP1250, to jeśli dało się coś podobnego wgrać przez FTPa, to pewnie da się też tą samą drogą wyciągnąć.
Aczkolwiek to nie są zbyt częste przypadki, o wiele częściej zdarzają się terroryści typu "mam zdjęcia zgrane na płytkę DVD, jak tą płytkę wgrać do was przez ftp, bo próbowałem 11 razy i się nie udało".


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#17  2016-02-14 14:18:25

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Zamiana w plikach rekurencyjnie

asertywność do handlowców... chyba jestem wystarczająco asertywny bo nawet najbardziej egzotyczne okazy ze wszystkimi zębami chodzą (chociaż jeden jak naobiecywał to dostał zlecenie wprowadzenia obiecanych danych i po miesiącu wymiękł, następny poleciał na zbity pysk za całokształt działalności).
co do ftp - jakbym miał hasło to może bym nie robił problemów... ale bez tego drobiazgu ftp jakoś słabo działa :(


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.016 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00013 SET CHARSET latin2
0.00006 SET NAMES latin2
0.00230 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='52.207.218.95' WHERE u.id=1
0.00128 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '52.207.218.95', 1711629062)
0.00064 SELECT * FROM punbb_online WHERE logged<1711628762
0.00118 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=28278 AND t.moved_to IS NULL
0.00015 SELECT search_for, replace_with FROM punbb_censoring
0.00267 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=28278 ORDER BY p.id LIMIT 0,25
0.00237 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28278
Total query time: 0.01078 s