Átnevezés

Kezdőlap Fórumok Programozás Átnevezés

10 bejegyzés megtekintése - 1-10 / 10
  • Szerző
    Bejegyzés
  • #2103709
    Wait
    Felhasználó

      grep lesz a te embered… hogy ez le is tudja-e cserélni, azt nem tudom, de megkeresni megkeresi…

      #2103710
      erdsiger
      Felhasználó
        Wait wrote:
        grep lesz a te embered…

        Igen, a megkeresésé még csak menne, a -R kapcsolóval rekurzívan működne is, de arra még nem jöttem rá, hogyan lehetne lecserélni 🙁

        #2103711
        Leslieman
        Felhasználó

          Egyszerűbb a rename-t használni. Util-linux csomagban benne van.
          http://wiki.linuxquestions.org/wiki/Rename

          #2103712
          gendelider
          Felhasználó

            Ha jól értem, egy directory stuktúrában végig akarsz nézni fájlokat egy adott stringre, és ha az ott van, akkor a sringet lecserélni egy másikra a fájlban.

            Ha ezt akarod, akkor pl ez lehet a scripted:

            Code:
            # 1. par: kezdokonyvtar
            # 2. par: a keresendo string
            # 3. par: amire cserelni akarod
            # a felhivaskor a parametereket macskakormok koze lehet zarni
            # ha a 2. vagy 3. parameretben „/” szerepel, akkor azt „”-sel devalidalni kell

            for i in $(grep -Rl „$2” $1/*)
            do
            sed -e „s/$2/$3/g” $i >/tmp/csere.tmp
            mv /tmp/csere.tmp $i
            done

            Szóközös könyvár / fájlnevekre nem teszteltem  😉

            #2103713
            erdsiger
            Felhasználó
              Leslieman wrote:
              Egyszerűbb a rename-t használni.

              Ha jól látom, a rename csak a fájl nevét cseréli le. Vagy rosszul értelmezem?

              gendelider wrote:
              Ha ezt akarod, akkor pl ez lehet a scripted:

              Kipróbáltam, de szerintem valamit rosszul írtam. Ez az eredmény:

              Code:
              erdsiger[com_openwiki]$ cat csere.sh
              # 1. par: kezdokonyvtar
              # 2. par: a keresendo string
              # 3. par: amire cserelni akarod
              # a felhivaskor a parametereket macskakormok koze lehet zarni
              # ha a 2. vagy 3. parameretben „/” szerepel, akkor azt „”-sel devalidalni kell

              for i in $(grep -R „utf-8” /home/erdsiger/joomla/com_openwiki/*)
              do
              sed -e „s/utf-8/iso-8859-2/g” $i >/tmp/csere.tmp
              mv /tmp/csere.tmp $i
              done
              erdsiger[com_openwiki]$ ./csere.sh
              sed: érvénytelen kapcsoló — R
              Usage: sed [OPTION]… {script-only-if-no-other-script} [input-file]…

                -n, –quiet, –silent
                              suppress automatic printing of pattern space
                -e script, –expression=script
                              add the script to the commands to be executed
                -f script-file, –file=script-file
                              add the contents of script-file to the commands to be executed
                -i[SUFFIX], –in-place[=SUFFIX]
                              edit files in place (makes backup if extension supplied)
                -l N, –line-length=N
                              specify the desired line-wrap length for the `l’ command
                –posix
                              disable all GNU extensions.
                -r, –regexp-extended
                              use extended regular expressions in the script.
                -s, –separate
                              consider files as separate rather than as a single continuous
                              long stream.
                -u, –unbuffered
                              load minimal amounts of data from the input files and flush
                              the output buffers more often
                    –help    display this help and exit
                    –version  output version information and exit

              If no -e, –expression, -f, or –file option is given, then the first
              non-option argument is taken as the sed script to interpret.  All
              remaining arguments are names of input files; if no input files are
              specified, then the standard input is read.

              A fordítási hibákat kérem a gyulai@fbi.hu címre küldeni.
              Angolul ide: bonzini@gnu.org . A levél Tárgy mezejében legyen ott a `sed’ szó.
              mv: érvénytelen kapcsoló — R
              Próbáld a „mv –help”-et.
              sed: a kapcsolónak szüksége van egy argumentumra — e
              Usage: sed [OPTION]… {script-only-if-no-other-script} [input-file]…

                -n, –quiet, –silent
                              suppress automatic printing of pattern space
                -e script, –expression=script
                              add the script to the commands to be executed
                -f script-file, –file=script-file
                              add the contents of script-file to the commands to be executed
                -i[SUFFIX], –in-place[=SUFFIX]
                              edit files in place (makes backup if extension supplied)
                -l N, –line-length=N
                              specify the desired line-wrap length for the `l’ command
                –posix
                              disable all GNU extensions.
                -r, –regexp-extended
                              use extended regular expressions in the script.
                -s, –separate
                              consider files as separate rather than as a single continuous
                              long stream.
                -u, –unbuffered
                              load minimal amounts of data from the input files and flush
                              the output buffers more often
                    –help    display this help and exit
                    –version  output version information and exit

              If no -e, –expression, -f, or –file option is given, then the first
              non-option argument is taken as the sed script to interpret.  All
              remaining arguments are names of input files; if no input files are
              specified, then the standard input is read.

              A fordítási hibákat kérem a gyulai@fbi.hu címre küldeni.
              Angolul ide: bonzini@gnu.org . A levél Tárgy mezejében legyen ott a `sed’ szó.
              mv: érvénytelen kapcsoló — e
              Próbáld a „mv –help”-et.
              sed: nem lehet olvasni „s/utf-8/iso-8859-2/g”: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „”s/utf-8/iso-8859-2/g””: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni >/tmp/csere.tmp: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „>/tmp/csere.tmp”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni application/xml;: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „application/xml;”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni /home/erdsiger/joomla/com_openwiki/inc/lang/en/lang.php://Setup: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „/home/erdsiger/joomla/com_openwiki/inc/lang/en/lang.php://Setup”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni /home/erdsiger/joomla/com_openwiki/inc/toolbar.php://Setup: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „/home/erdsiger/joomla/com_openwiki/inc/toolbar.php://Setup”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni /home/erdsiger/joomla/com_openwiki/inc/auth.php://Setup: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „/home/erdsiger/joomla/com_openwiki/inc/auth.php://Setup”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni /home/erdsiger/joomla/com_openwiki/inc/fulltext.php://Setup: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „/home/erdsiger/joomla/com_openwiki/inc/fulltext.php://Setup”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni /home/erdsiger/joomla/com_openwiki/inc/parserutils.php://Setup: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „/home/erdsiger/joomla/com_openwiki/inc/parserutils.php://Setup”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni /home/erdsiger/joomla/com_openwiki/inc/mail.php://Setup: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „/home/erdsiger/joomla/com_openwiki/inc/mail.php://Setup”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni /home/erdsiger/joomla/com_openwiki/inc/confutils.php://Setup: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „/home/erdsiger/joomla/com_openwiki/inc/confutils.php://Setup”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni /home/erdsiger/joomla/com_openwiki/inc/blowfish.php://Setup: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „/home/erdsiger/joomla/com_openwiki/inc/blowfish.php://Setup”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni /home/erdsiger/joomla/com_openwiki/inc/feedcreator.class.php://Setup: Nem könyvtár
              mv: „/home/erdsiger/joomla/com_openwiki/inc/feedcreator.class.php://Setup” elérése: Nem könyvtár
              sed: nem lehet olvasni text/html;: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „text/html;”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni text/plain;: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „text/plain;”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni text/html;: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „text/html;”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni content=”text/html;: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „content=”text/html;”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni />’);: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „/>’);”: Hozzáférés megtagadva
              sed: nem lehet olvasni /home/erdsiger/joomla/com_openwiki/inc/actions.php://Setup: Nem könyvtár
              mv: „/home/erdsiger/joomla/com_openwiki/inc/actions.php://Setup” elérése: Nem könyvtár
              sed: nem lehet olvasni /home/erdsiger/joomla/com_openwiki/inc/aspell.php://Setup: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „/home/erdsiger/joomla/com_openwiki/inc/aspell.php://Setup”: Nincs ilyen fájl vagy könyvtár
              sed: nem lehet olvasni /home/erdsiger/joomla/com_openwiki/inc/io.php://Setup: Nincs ilyen fájl vagy könyvtár
              mv: „/tmp/csere.tmp”-t nem lehet ide áthelyezni: „/home/erdsiger/joomla/com_openwiki/inc/io.php://Setup”: Nincs ilyen fájl vagy könyvtár

              És még ez folytatódik…

              #2103714
              gendelider
              Felhasználó

                for i in $(grep -Rl „utf-8” /home/erdsiger/joomla/com_openwiki/*)

                az R betű után egy kis l (lászló) hibádzik.
                Nálad kiír minden találatot, a kis l viszont azt mondja, hogy csak a fájlneveket írja ki, amelyikben találat van.

                #2103715
                erdsiger
                Felhasználó
                  gendelider wrote:
                  az R betű után egy kis l (lászló) hibádzik.

                  Így már sikerült! Köszönöm! Valószínűleg amikor a paramétereket adtam meg, véletlenül kitöröltem…

                  #2103716
                  uzsolt
                  Felhasználó

                    Esetleg a sed-et ki lehet cserélni sed -i-re, ilyenkor nem kell átirányítani/átnevezni:

                          -i[SUFFIX], –in-place[=SUFFIX]

                                  edit files in place (makes backup if extension supplied)

                    #2103717
                    Leslieman
                    Felhasználó
                      erdsiger wrote:
                      Ha jól látom, a rename csak a fájl nevét cseréli le. Vagy rosszul értelmezem?

                      Ahh, igen. Rosszul olvastam el, amit írtál. Azt hittem a fájlnévben kell cserélni a szavakat :). Bocs.

                      #1886214
                      csaba
                      Felhasználó

                        Sziasztok!

                        Lenne egy problémám, de nagyon nem értek a bash programozásához 🙂 Egy könyvtárban vannak fájlok és további alkönyvtárak is. Egy olyan szkriptre lenne szükségem, amely ebben a könyvtárban lévő összes fájlban  (beleértve az alkönyvtárakban lévőket is) megkeres egy szót (a fájl szövegében, nem a nevében) és az lecseréli egy másikra. Előre is köszönöm a segítséget!

                      10 bejegyzés megtekintése - 1-10 / 10
                      • Be kell jelentkezni a hozzászóláshoz.