Kezdőlap › Fórumok › Programozás › Shell – patch csak új sorokkal
- This topic has 10 hozzászólás, 3 résztvevő, and was last updated 12 years, 1 months telt el by
valaki456.
-
SzerzőBejegyzés
-
2013-04-01-10:58 #1890581
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 456A másik állományom tartalma pedig ez:
Code:PingvinKormoránFókaRozmárEkkor 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!
2013-04-01-16:57 #2207227Szerintem 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() {2013-04-01-18:11 #2207228Kö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é: 34Kár hogy nincs rá valami egyszerű megoldás.
2013-04-01-19:58 #2207229Ezt 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?
2013-04-01-21:58 #2207230Igen, a másodikban lehet több is, mint itt.Itt ennek kellett volna lenni az eredménynek:
Code:valamiizé: 1234valamiizé: 34valamiizé:valamiizé:2013-04-01-22:08 #2207231Egyé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 😀
2013-04-02-05:06 #2207232(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.
2013-04-02-20:44 #2207233Mű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ó… 😀
2013-04-02-21:19 #2207234Kiderü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 😀
2013-04-04-18:45 #2207235Csak „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 -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz