A probléma kiindulása a következő parancs, melynek a működésre bírása nagyon sürgős lenne:
diff --unified=6 --exclude=.svn --minimal --ignore-matching-lines=´<!--*-->´ könyvtár1 könyvtár2 > könyvtár.diff
Kipróbáltuk, másik gépen működik. A konkrét probléma az, hogy az ´<!--*-->´ karaktersorozattal van. Igazából szerintem csak a ´ rakoncátlankodik. Valamiért kétszer kell megnyomni például, hogy megjelenjen. Van valakinek ötlete mitől lehet, vagy mi lehet a megoldás?
Esetleg, hogy lehetne pótolni a parancsot?
Aleph
- 1108 megtekintés
Hozzászólások
Elképzelhető hogy a két gépen nem azonos diff verziók vannak és így eltérhet a regexp értelmezése, ami szerintem nem is szabványos így ahogy van. Pontosan én sem tudom hogy mi lenne a helyes, rosszat meg nem akarok megadni.
- A hozzászóláshoz be kell jelentkezni
`` helyett '' hasznalj!
Ha nem megy a karakter, valamiert akkor egerrel illeszd be. nem '<!--.*-->' -ot akarsz hasznalni? Vagy '^[[:space:]]*<!--.*-->[[:space:]]*$' .
- A hozzászóláshoz be kell jelentkezni
A "!" az shell-ben (bash) az elozo parancsokban hasznalt argumentumok kifejte'se're vagy valami ilyesmire szolgal:
Event Designators
An event designator is a reference to a command line entry in the his-
tory list.
! Start a history substitution, except when followed by a blank,
newline, = or (.
!n Refer to command line n.
!-n Refer to the current command line minus n.
!! Refer to the previous command. This is a synonym for `!-1'.
!string
Refer to the most recent command starting with string.
!?string[?]
Refer to the most recent command containing string. The trail-
ing ? may be omitted if string is followed immediately by a new-
line.
^string1^string2^
Quick substitution. Repeat the last command, replacing string1
with string2. Equivalent to ``!!:s/string1/string2/'' (see Mod-
ifiers below).
!# The entire command line typed so far.
Ha nem megfelelo" idezojelbe teszed a !-t, akkor baj lehet. A szimpla idezojelbe ('...') tett szovegekre nem fejti ki a shell ezt, a dupla idezojelekbe tett szovegbe viszont igen. Amit irtal az a masik ("ferde") idezojel, a `...`, az meg ma'sra szolgal (a `...`-be irt parancs stdout-ja't helyettesiti be).
Szoval ez igy, hogy
echo '<!--*-->'
teljesen jol mukodik.
Regexpben belul pedig talan a !-t erdemes kiescape'zni (hu de szep magyar szo ;]), szoval eletenni egy \-t, mert ott annak valami mas jelentese van (tagada's).
Igy tehat hogy
--ignore-matching-lines='<\!--*-->'
szerintem mennie kene.
A.
Szerk: a * helyett is talan .* kell... szoval igy:
--ignore-matching-lines='<\!--.*-->'
de ebben nem vagyok egeszen biztos (valami olyasmi remlik, hogy amit shellpatternben (lasd: fnmatch()) *-gal jelolne'l, azt regexp-ben .*-gal kell helyettesiteni).
- A hozzászóláshoz be kell jelentkezni
olyan idézőjelet használtál, ami nem speciális a shell számára, és egyébként arra való, hogy olyan karaktereket írj vele, amik nincsenek rajta a billentyűzeten.
vannak ilyenek, hogy: ´ ˝ ¨ ¸ - a magyar billentyűzeten az altgr-9/ö/ü/ó.
így írhatsz 'ë'-t úgy, hogy altgr-ü + e , vagy 'ç'-t (altgr-ó + c). ilyen dolgok ezek.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Kiizadtam: <--.*-->
Mindenféle trükkös idézőjel nélkül, ponttal. Szép teljes opció született:
DIFF_OPT="--unified=6 --exclude=.svn --minimal --ignore-matching-lines=<!--.*-->"
Már csak azt nem értem (bár egy ronda ki-be másolással megoldottam: miután kivettem az értelmezett fájlokból a .svn könyvtárat nem tudtam még a metadoc.xml fájlt is kivenni.
Szerintem így nem megy parancssorból, de a scriptben valamiért megette. Nem jöttem volna magamtól rá, ha nem bandukolok be a könyvtárba, ahol ott lepult az elkészült diff, bár nem pont úgy ahogy én elképzeltem, de azt jelentette, hogy nem jelzett hibát a diff.
Egyébként mindenkinek nagyon köszönöm a segítségét.
- A hozzászóláshoz be kell jelentkezni
Ezt olvasd el:
http://www.uhulinux.hu/~egmont/uhu-doc/keyboard/index.html
Itt megtanulhatod, hogy a billentyűzeteden melyik jel mire való, és megérted, hogy miért kell kétszer leütni, és hogy miért nem azt csinálta, amit szerettél volna.
- A hozzászóláshoz be kell jelentkezni