Mi az amit nem látok a bash manualban?
Ha egy könyvtárból több fájlt akarok felhasználni, akkor ugye megadhatom úgy, hogy
cat /teljes/eleresi/ut/{elso,masodik,harmadik}
Viszont mi van, ha a { } jelek közti nevek egy generált listából származnak, ami lehet egy vagy több elemű?
Több elemnél nincs gond, de az eggyel úgy tűnik, adódnak problémák:
A /teljes/eleresi/ut/{elso} 1:1-ben így jelenik meg, nem lesz belőle /teljes/eleresi/ut/elso.
Ha meg az elso után van egy vessző is, akkor második elemként maga a könyvtár jelenik meg, ami megintcsak nem nyerő.
Workaround van, csak érteni szeretném, hogy miért csak több elemnél működik a kapcsos zárójel úgy, ahogy, egynél miért nem?
- 1093 megtekintés
Hozzászólások
Alapbol glob pattern-t hasznal find, ls, cat stb. ami ? * es range [12345] formatumokat ismer.
A kacsacsoros (curly braces) formatumu lista magadast a bash dolgozza fel ezek elott a brace expansion reven.
Abban pedig le van irva az elvart formatuma: "A correctly-formed brace expansion must contain unquoted opening and closing braces, and at least one unquoted comma or a valid sequence expression. Any incorrectly formed brace expansion is left unchanged. "
- A hozzászóláshoz be kell jelentkezni
Köszi, akkor ez maradt ki. (pont az a 6-8 sor az, amit sikerült ignorálni :( )
- A hozzászóláshoz be kell jelentkezni
A find, ls, cat nem használ glob patternt. Azt is a shell expanseolja. Ez nem dos.
- A hozzászóláshoz be kell jelentkezni
Ennyire nem tudok már olvasni. Ezek fel sem tűntek.
Viszont a find-ot én külön listára tenném, annak már vannak ilyen funkciói, ott nem (csak) a shell dolgozza fel a mintákat.
- A hozzászóláshoz be kell jelentkezni
A man findnek pl a -name környékén más a véleménye
- A hozzászóláshoz be kell jelentkezni
A find bizonyos szűrési feltételei hasonlóképp viselkednek, mint a shell globbingja.
De az egyrészt külön eset, másrészt, ott a shell-t explicit le kell beszéld arról, hogy a globing expression-t saját maga fejtse ki.
A másik különbség a kettő közt: a shell kifejti a glob-ot és behelyettesíti, a find pedig szűrési feltételként alkalmazza.
NE keverjük a szezont a fazonnal!
szerk.: Annyiban valóban pontatlan voltam az "idézésnél", hogy a find-ot egy kalap alá vettem a többi felhozott példával. De gondoltam tudunk fókuszálni a lényegre! ;-) Rosszul gondoltam. Explicit bele kellett volna írjam a konfúzió elkerülése végett, hogy a find is ismeri a globbingot a filter expression-ök közt.
- A hozzászóláshoz be kell jelentkezni
Nem vitattam, kiegészítettem :)
- A hozzászóláshoz be kell jelentkezni
"A correctly-formed brace expansion must contain unquoted opening and
closing braces, and at least one unquoted comma or a valid sequence
expression. Any incorrectly formed brace expansion is left unchanged."
No megeloztek :-)
- A hozzászóláshoz be kell jelentkezni