User Käyttäjä Salasana  
   
torstai 30.1.2025 / 08:56
Hae keskustelualueilta:        In English   Suomeksi   På svenska
afterdawn.com > keskustelu > yleistä keskustelua tietokoneista > linux -keskustelu > putkitettu tiedoston muokkaus
Näytä aiheet
 
Keskustelualueet
Keskustelualueet
Putkitettu tiedoston muokkaus
  Siirry:
 
Kirjoittaja Viesti
Knikke
Newbie
_
16. lokakuuta 2006 @ 11:25 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
Hei!

Olen käyttänyt linuxia verrattain vähän ja tarttisin apua putkitetun komennon tekoon. Komennon tulisi tehdä:
1. Skannata kansioita ja etsiä sieltä tiedot index.php jotka sisältää tekstin main. Skannattava syvyys on 1.
find -maxdepth 1 -name 'index.php' toi ettii muuten muttei tarkista sisältääko tekstiä.
2. Jos tiedostoja löytyy, lisätään tiedoston alkuun tai riville X rivi: -esimerkki-

T: Niko
Senior Member
_
16. lokakuuta 2006 @ 13:50 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
ihan suoraan en ny tuota komentoa voi antaa, kun pitäisi vähän testatakkin..

mutta.. jos haluat 1 riville jonkun merkkijonon, niin sitten pitää kikkailla temppitiedostoilla, esim näin:

olkoon tiedoston nimi nyt korvaa.sh

#!/bin/bash
# lisää tietyn 2. parametrinä annetun merkkijonon 1. 
# parametrinä annettuun tiedostoon
# korvaa.sh <tiedostonnimi> "merkkijono"

# tarkistetaanko onko tiedostonimi sopiva
case "$1" in
"") echo "Käyttö: ${0##*/} <tiedostonimi> <merkkijono>"; exit $E_PARAM;;  
-*) FILENAME=./$1;;   
* ) FILENAME=$1;;
esac
#tarkistetaan onko lisättävää merkkijonoa
case "$2" in
"") echo "Käyttö: ${0##*/} <tiedostonimi> <merkkijono>"; exit $E_PARAM;;
*) STRTOADD=$2;;
esac
#pistetään merkkijono tmppitiedoston kärkeen.
echo $STRTOADD > tmp.php
#luetaan tiedosto ja laitetaan temppitiedoston loppuun
cat $FILENAME >> tmp.php
#wanaha tiedosto pois, temppiä tilalle
rm $FILENAME; mv tmp.php $FILENAME

tai sitten jos haluaa jollekkin tietylle riville aina merkinnän, niin se voisi mennä jotenkin näin..


#!/bin/bash
# lisää tietyn parametrinä 3. annettun merkkijonon, 
# parametrinä 2. annetulle riville 
# parametrinä 1. annettuun tiedostoon 
#
# korvaa.sh <tiedostonimi> <rivinro> <merkkijono>

# tarkistetaanko onko tiedostonimi sopiva
case "$1" in
"") echo "Käyttö: ${0##*/} <tiedostonimi> <merkkijono>"; exit $E_PARAM;;  
-*) FILENAME=./$1;;   
* ) FILENAME=$1;;
esac
#tarkistetaan onko rivinumeroa
case "$2" in
"") echo "Käyttö: ${0##*/} <tiedostonimi> <rivinro> <merkkijono>"; exit $E_PARAM;;
*) LINE=$2;;
esac
#tarkistetaan onko lisättävää merkkijonoa
case "$3" in
"") echo "Käyttö: ${0##*/} <tiedostonimi> <merkkijono>"; exit $E_PARAM;;
*) STRTOADD=$3;;
esac
#luetaan 10 ensimmäistä riviä ja laitetaan temppitiedostoon
head -n$LINE > tmp.php
#lisätään se yksi rivi
echo $STRTOADD >> tmp.php
#luetaan loput temppitiedoston loppuun
more +$line $FILENAME >>tmp.php
#wanaha tiedosto pois, temppiä tilalle
rm $FILENAME; mv tmp.php $FILENAME


sitten se looppi on vähän kinkynmpi.. ehkä tuolla findilla olisi hyvä tehdä lista tiedostoista joita muuttaa, find blaablaa > muokattavat.txt. Sitten tuota muokattavat.txt:tä pitäisi lukea rivi kerrallaan ja käyttää jompaa kumpaa yllä mainittua scriptiä...



It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away.

Viestiä on muokattu lähettämisen jälkeen. Viimeisin muokkaus 16. lokakuuta 2006 @ 13:51

Knikke
Newbie
_
17. lokakuuta 2006 @ 06:07 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
Kiitoksia vastauksestasi. Tuosta olisi apua jos saisin ajettua tuon luomani korvaa.sh-tiedoston. Onko tohon olemassa mitään ihan komentoriviillä ajettavaa "rimpsua" :D
Senior Member
_
17. lokakuuta 2006 @ 06:14 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
chmod u+x korvaa.sh
./korvaa.sh

うさぎ => Kubuntu 10.04 64b + W7Pro64 # EliteBook 8540w # Ci7 620M # 4GB # QFX 880M # 7k500 500GB
きつね => WXP32 # PIIX4 910e # 4GB # RHD 6870 # 500GB
くま => Linux/XBMC 64b # Zotac MAG HD-ND01 # N330 # 2GB # GF 9400M/ION
とら => Ubuntu Server 8.04 LTS 64b # Jetway NC62K-LF # AX2 4850e @1,7GHz/0,9V # 2GB # F1 4x1TB
Knikke
Newbie
_
17. lokakuuta 2006 @ 06:23 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
Chmod korjasi tuon että voin ajaa sen... Kiitos!

Seuraava ongelma on kun lisättävä teksti sisältää merkin $ eli esim:
./korvaa.sh index.php "if ($HTTP_POST_VARS['id'] != ''"

Ideoita?
Knikke
Newbie
_
17. lokakuuta 2006 @ 06:26 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
Tämä onnistuikin kun muutti "-merkit -> '-merkiksi ja päinvastoin :D
Knikke
Newbie
_
17. lokakuuta 2006 @ 06:42 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
Eli eli... komentoon:
find -maxdepth 2 -name 'index.php' tarttis nyt yhdistää toi korvaa.sh... Ihan putkittamalla se ei onnistu.. (en osaa :D)
Pystyyköhän tohon korvaa.sh-tidostoon lisään cksumin tai jonkun, että se lisää vaan rivin jos cksum on tietty?
Knikke
Newbie
_
17. lokakuuta 2006 @ 09:26 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
Olen saanut muodostettua rivin joka lisää kaikkiin löytämiinsä index.php-tiedstoihin tekstiä.

find . -maxdepth 2 -name 'index.php' -size 4k -exec ./korvaa.sh {} "Testi" \;

Toi on jo oikeastaan se mitä hain. Vielä jos ton size:n tilalla ois joku cksum:n tai sum:n tarkistus...Vaikka kyllä toiki varmaan on sopiva tarkoitukseeni. Kiitoksia avusta!
Mainos
_
__
 
_
Knikke
Newbie
_
20. lokakuuta 2006 @ 09:51 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
Osaisko joku yhistää chksumin, sumin tai md5sumin joko tohon kyselyyn tai sit tohon korvaa.sh-tiedostoon?
afterdawn.com > keskustelu > yleistä keskustelua tietokoneista > linux -keskustelu > putkitettu tiedoston muokkaus
 

Apua ongelmiin: AfterDawnin keskustelualueet | AfterDawnin Vastaukset
Uutiset: IT-alan uutiset | Uutisia puhelimista
Musiikkia: MP3Lizard.com
Tuotearviot: Laitevertailu | Vertaa puhelimia | Vertaa kännykkäliittymiä
Pelit: Pelitiedostot, pelidemot ja trailerit
Ohjelmat: download.fi | AfterDawnin ohjelma-alueet
International: AfterDawn in English | Software downloads | Free, legal MP3s | AfterDawn på svenska
RSS -syötteet: AfterDawnin uutiset | Uusimmat ohjelmapäivitykset | Keskustelualueiden viestit
Tietoja: Tietoa AfterDawn Oy:stä | Mainosta sivuillamme | Sivuston käyttöehdot ja tietoja yksityisyydensuojasta
Ota yhteyttä: Lähetä palautetta | Ota yhteyttä mainosmyyntiimme
 
  © 1999-2025 AfterDawn Oy