Shell – patch csak új sorokkal

Kezdőlap Fórumok Programozás Shell – patch csak új sorokkal

10 bejegyzés megtekintése - 1-10 / 11
  • Szerző
    Bejegyzés
  • #1890581
    valaki456
    Felhasználó

      Sziasztok!Az előbb futottam össze egy érdekes problémával, amivel eddig nem találkoztam. Az a gondom, hogy úgy kellene patchelnem egy fájlt, hogy csak a teljesen új sorok kerüljenek bele, tehát amik csak módosultak azok ne. Lehet csak én vagyok figyelmetlen, de sem a patch, sem a diff esetén nem találtam ilyen kapcsolót ami nekem kellene.Az érthetőség kedvéért mondjuk legyen az egyik állományom tartalma ez:

      Code:
      Pingvin 123Kormorán 456

      A másik állományom tartalma pedig ez:

      Code:
      PingvinKormoránFókaRozmár

      Ekkor a patchelés után egy ilyen tartalmú állományt szeretnék kapni:

      Code:
      Pingvin 123Kormorán 456FókaRozmár

      Őszintén szólva nem hiszem el, hogy erre nincs szép és egyszerű megoldás, gondolom csak én vagyok figyelmetlen és tudatlan 😀De ha tényleg nincs rá ilyen megoldás, akkor majd alkotok valamit.Előre is köszönöm a segítséget mindenkinek!

      #2207227
      pointux
      Felhasználó

        Szerintem nem is fogsz, mert nem sorok résztringjére, hanem sorokra találták ki, így neked az összes sor különbözni fog.Ha nem sok adatról van szó, akkor egy bash shell jól átláthatóan megoldja a dolgot, ha sokról, akkor mással érdemes elgondolkodni.Itt egy bash példa:

        Code:
        #!/bin/bashsaveIFS="$IFS"IFS=$'n'array1=( $(cat "$1") )array2=( $(cat "$2") )strstr() {

        #2207228
        valaki456
        Felhasználó

          Köszönöm a válaszod. Sajnos ez így még nem jó nekem az ismétlődések miatt. Ha van egy ilyenem:

          Code:
          valamiizé: 1234valamiizé: 34

          és egy ilyenem:

          Code:
          valamiizé:valamiizé:valamiizé:valamiizé:

          akkor ez ezt dobja vissza nekem:

          Code:
          valamiizé: 34valamiizé: 34valamiizé: 34valamiizé: 34

          Kár hogy nincs rá valami egyszerű megoldás.

          #2207229
          pointux
          Felhasználó

            Ezt nem írtad.A másikban is több (ugyanannyi izé van)?Mert nem mindegy, hogy az aktuális izét cseréled, vagy azt az egy izét bővíted az x daram izé + számmal.Sőt a példádban meg a másodikban több izé van... na akkor ott csak az első pl. két itét kell számmal bővíteni, a többit hagyni?

            #2207230
            valaki456
            Felhasználó

              Igen, a másodikban lehet több is, mint itt.Itt ennek kellett volna lenni az eredménynek:

              Code:
              valamiizé: 1234valamiizé: 34valamiizé:valamiizé:

              #2207231
              valaki456
              Felhasználó

                Egyébként ezzel a problémával konkrétan az xgettext által generált po állományok miatt találkoztam most. Ugye a régiből jó lenne megtartani azt a szöveget amit már kézileg átírtam. Egy bizonyos méret után már elég kellemetlen újra bele irkálnom mindent. Ha erre tudsz valami megoldást, akkor az is megteszi.Viszont ez a probléma akkor is érdekes marad. Szóval később megéri még foglalkozni vele 😀

                #2207232
                pointux
                Felhasználó

                  (Akkor vélelmezem mindennek párja van.)xgettext "nem jó", esetleg próbálkozz a poedittel, mert amikor az összegyűjti az infót, akkor felajánlja a bővítést és a törlést egy gombnyomásra.Ha a poedit nem működik, akkor írok rá valamit, csak most nincs időm.

                  #2207233
                  valaki456
                  Felhasználó

                    Működik a poedit, de sajnos nekem elég használhatatlannak tűnik. Semmivel se ér többet, mintha joeban nekiállnék szerkesztgetni. De nagy valószínűséggel csak én vagyok tudatlan és nem jövök rá hogy kell használni. Sajna az ilyen kattingatós dolgokban nagyon nem vagyok jó… 😀

                    #2207234
                    valaki456
                    Felhasználó

                      Kiderült, hogy megint a tudatlanságom és figyelmetlenségem volt a bűnös. Az msgmerge megoldotta a problémámat.Elnézést a felesleges fejtörők miatt 😀

                      #2207235
                      uzsolt
                      Felhasználó

                        Csak “vagánykodásképp”:

                        Code:
                        $ cat aPingvin 123Kormorán 456 $ cat bPingvinKormoránFókaRozmár$ dwdiff a b | sed "s@[-(.*)-]@1@ ; s@{+@@ ; s@+}@@"Pingvin 123Kormorán 456FókaRozmár

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