Kezdőlap › Fórumok › Programozás › Több szövegfájlban ugyanaz a módosítás.
- This topic has 18 hozzászólás, 8 résztvevő, and was last updated 19 years, 2 months telt el by
msandor.
-
SzerzőBejegyzés
-
2006-02-20-13:30 #2050094
Tedd így:
for i in *.htm
do
sed ‘s/styles.css/styles2.css/’ „$i.htm” > „$i.htm”
doneígy az ” jel miatt megmaradnak a fájlokban a space-k ha véletlenül raktál és minden felülíródik.
Elméletileg müködnie kell, nekem egy feliratfájlnál hasonló módszerrel tökéletesen ment.Lehet a .htm nem kell majd
szóval így:for i in *.htm
do
sed ‘s/styles.css/styles2.css/’ „$i” > „$i”
donePróba szerencse 🙂
2006-02-20-14:23 #2050095hááát…
A sed soronként olvas. Tehát a scriptedben fájl elsõ sorát beolvassa, átalakítja, és a „>” miatt törli és új fájlt kezd a már átalakított elsõ sorral….2006-02-20-14:32 #2050096az én verzióm:
#!/bin/sh
# kigyujtes htmlista fajlba
find . -type f -name ‘*.html’ > htmlista
# atnezzuk az osszes fajlt
for i in `cat htmlista`; do# lecsereljuk a regi cimet ujra es atmeneti allomanyba irjuk
cat „$i” | sed s/a_cserélendõ_szöveg/az_új_szöveg/g > atmeneti# atnevezzuk az atmeneti fajlt az eredetire
mv atmeneti „$i”
done# toroljuk a segedallomanyokat
rm htmlistanekem bevált, de azért teszteld le egy másolatmappában…
2006-02-20-21:06 #2050097Hát nem tom… nekem így müködött tökéletesen, úgyhogy akinek nem inge ne használja :poketoungeb:
🙂legfeljebb >> -el kell irányítani egy fájlba és kész.
nem kell túlbonyolítani…2006-02-20-22:04 #2050098„>>” esetén pedig a feldolgozott anyag mögé írja a változtatott sorokat, aztán (nem próbáltam) lehet hogy ezeket is elkezdi feldolgozni, szal…
Tudom, a Linux olyan király, hogy a végtelen ciklust is 5 perc alatt végrehajtja 😀2006-02-21-06:46 #2050099Jó, ok. Megadom magam. Te vagy az erösebb 🙂
Akkor nekem full special gépem és Linuxom van, mert akkor is így csináltam meg a feliratot… :poketoungeb:Remélem azért megtaláljátok a megoldást
Sok sikert!2006-02-21-17:32 #2050100AMD486 wrote:A szüneteket pedig elõbb szedd le MINDEN fájlnévbõl, mert fölöslegesen dagasztja a scriptet a szünetes fájlnevek feldolgozása. (különben nem nagy cucc a dolog)
hááát
ls
betuk_brailleszamaik braille he l o kezikonyv menurendszer menu_szavak
for i in *;do echo „$i”;done
„betuk_brailleszamaik”
„braille”
„he l o”
„kezikonyv”
„menurendszer”
„menu_szavak”tehát a for jó, csak az echo nem
a sed kimenetének átirányítása ugyanarra a fájlra szintén nem jó ötlet2006-02-22-10:53 #2050101Egyik sem mûködik 🙁
Ez törli az egész tartalmat a fájlból:
Code:for i in *.htm
do
sed ‘s/styles.css/styles2.css/’ „$i” > „$i”
doneEz nem módosítja a bejegyzéseket, látszólag semmi nem történik:
Code:for file in `find . -iname „*.html”`
do
mv „$file” _”$file”
cat _”$file”|sed -e ‘s/styles.css/styles2.css/g’ > „$file”
rm _”$file”
doneEz is ugyanaz mint az elõzõ kód, nem módosít semmit:
Code:#!/bin/sh# kigyujtes htmlista fajlba
find . -type f -name ‘*.html’ > htmlista
# atnezzuk az osszes fajlt
for i in `cat htmlista`; do# lecsereljuk a regi cimet ujra es atmeneti allomanyba irjuk
cat „$i” | sed s/a_cserélendõ_szöveg/az_új_szöveg/g > atmeneti# atnevezzuk az atmeneti fajlt az eredetire
mv atmeneti „$i”
done# toroljuk a segedallomanyokat
rm htmlistaCsak ötlet: Az nem lehet probléma, hogy a lecserélendõ szövegekben szerepel egy pont? (styles.css) Gondolom a pont speckós karakter a programozásban.
2006-02-22-10:58 #2050102ds wrote:AMD486 wrote:A szüneteket pedig elõbb szedd le MINDEN fájlnévbõl, mert fölöslegesen dagasztja a scriptet a szünetes fájlnevek feldolgozása. (különben nem nagy cucc a dolog)
hááát
ls
betuk_brailleszamaik braille he l o kezikonyv menurendszer menu_szavak
for i in *;do echo „$i”;done
„betuk_brailleszamaik”
„braille”
„he l o”
„kezikonyv”
„menurendszer”
„menu_szavak”tehát a for jó, csak az echo nem
a sed kimenetének átirányítása ugyanarra a fájlra szintén nem jó ötletds!
Fogalmam nincs mit akartál írni ezzel. 😀2006-02-24-19:52 #2050103nembaj 🙂
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz