Fórum Root.cz
Hlavní témata => Software => Téma založeno: ZAJDAN 18. 03. 2020, 15:42:31
-
Ahoj...
mám adresář a v něm soubory s název, který definuje i stáří:
BlaBLa20200130.xml
BlaBLa20200210.xml
BlaBLa20200226.xml
.....
napadlo mne:
cd /somedir
ls >list.txt
curl --data-binary -O list.txt -H "Accept: application/xml" -H "Authorization: Basic <_token_>" https://...
má někdo lepší nápad? díky
-
ls vypisuje soubory v pořadí, v jakém jsou uloženy v souborovém systému. Pokud nebudete soubory v adresáři přidávat, mazat nebo přejmenovávat, vypíše je ls opakovaně ve stejném pořadí, ale z vašeho pohledu je to pořad nedefinované. Pokud chcete soubory vypsat v nějakém konkrétním pořadí, podívejte se do man ls, jaký parametr k tomu slouží.
Obecně vždy, když potřebujete vědět, jak funguje nějaký program, podívejte se nejprve na jeho manuálovou stránku. Teprve pokud tam nenajdete, co jste hledal, ptejte se v diskusi.
-
....
stahnu soubory z FTP udělám jejich seznam:
ls --file-type *.xml >list.txt
a vzhledem k tomu ze v nazvu souborů je dodržována logika 'ABC_date_timestamp.xml' mám záruku, že setřízení bude jak potřebuji, jen jsem si nebyl jistý zda Curl to bude posílat ze seznamu odzhora dolů.
-
ls vypisuje soubory v pořadí, v jakém jsou uloženy v souborovém systému. [...]
Obecně vždy, když potřebujete vědět, jak funguje nějaký program, podívejte se nejprve na jeho manuálovou stránku. [...]
ehm... z "man ls" v hned prvni radce description ;-)
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified
-
ls vypisuje soubory v pořadí, v jakém jsou uloženy v souborovém systému. [...]
Obecně vždy, když potřebujete vědět, jak funguje nějaký program, podívejte se nejprve na jeho manuálovou stránku. [...]
ehm... z "man ls" v hned prvni radce description ;-)
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified
No vida :-) Měl bych se řídit vlastními radami…
-
....
stahnu soubory z FTP udělám jejich seznam:
ls --file-type *.xml >list.txt
a vzhledem k tomu ze v nazvu souborů je dodržována logika 'ABC_date_timestamp.xml' mám záruku, že setřízení bude jak potřebuji, jen jsem si nebyl jistý zda Curl to bude posílat ze seznamu odzhora dolů.
Parametr --file-type přidá typ záznamu (adresář, odkaz apod.), to asi nechcete. *.xml expanduje shell – zsh i bash názvy souborů po expandování setřídí, ale nevím, zda se tak chovají všechny shelly.
-
Parametr --file-type přidá typ záznamu (adresář, odkaz apod.), to asi nechcete. *.xml expanduje shell – zsh i bash názvy souborů po expandování setřídí, ale nevím, zda se tak chovají všechny shelly.
--file-type tam je zbytečně, ale když už jsme u toho, dokázal by jste mi popsat co se míní tím 'přidá typ záznamu' ?
děkuji
-
Parametr --file-type přidá typ záznamu (adresář, odkaz apod.), to asi nechcete. *.xml expanduje shell – zsh i bash názvy souborů po expandování setřídí, ale nevím, zda se tak chovají všechny shelly.
--file-type tam je zbytečně, ale když už jsme u toho, dokázal by jste mi popsat co se míní tím 'přidá typ záznamu' ?
děkuji
z "man ls"
-F, --classify
append indicator (one of */=>@|) to entries
--file-type
likewise, except do not append '*'
pro lepsi pochopeni doporucuju vyzkouset porovnat ocima vystup z "ls" a "ls --file-type", uvidis ze napr. pro nazvy adresaru jim na konec prida "/", pro symbolicke odkazy prida "@"... pokud nevidis ocima tak:
ls >vystup-ls.txt
ls --file-type >vystup-ls-file-type.txt
diff vystup-ls.txt vystup-ls-file-type.txt
-
ehm... z "man ls" v hned prvni radce description ;-)
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified
No vida :-) Měl bych se řídit vlastními radami…
btw: zrovna pred par dny sem resil v skriptu ze vystup ls(a vim ze by se ls takto pouzivat nemel, ale...) mi neradil spravne cisla, napr.
100.txt
1001.txt
102.txt
z man sem nebyl moudrej, se sort mi to nevyhovouz nevim proc, ale pomohl kacer pro ls parametr -v v manualu popsane:
-v natural sort of (version) numbers within text
tedy s "ls -v" je vystup ciselne serazen ok:
100.txt
102.txt
1001.txt
-
k3dAR
Filip Jirsák
díky chlapci
-
btw: zrovna pred par dny sem resil v skriptu ze vystup ls(a vim ze by se ls takto pouzivat nemel, ale...) mi neradil spravne cisla, napr.
100.txt
1001.txt
102.txt
Jenže ls řadí abecedně, vždyť to tady bylo uvedeno z man, takže řazení je zcela v pořádku. Pokud by sis to neuměl představit, tak místo 0 použij písmeno A, místo 1 použij písmeno B a místo 2 použij písmeno C a už to bude úplně jasné.
-
btw: zrovna pred par dny sem resil v skriptu ze vystup ls(a vim ze by se ls takto pouzivat nemel, ale...) mi neradil spravne cisla, napr.
100.txt
1001.txt
102.txt
Jenže ls řadí abecedně, vždyť to tady bylo uvedeno z man, takže řazení je zcela v pořádku. Pokud by sis to neuměl představit, tak místo 0 použij písmeno A, místo 1 použij písmeno B a místo 2 použij písmeno C a už to bude úplně jasné.
pokud si to neumis precist, tak vez ze o abecednim z man sem uvadej tady ja, stejne tak sem psal ze sem potreboval ciselne razeni i sem psal jakej parametr na to je i kdyz z man to nemusi byt jasne... a vse tohle bylo v te zprave na kterou si reagoval ;-)
-
Promiň, tak jsem ti špatně porozuměl, ale ty jsi napsal, že ti to neřadilo správně čísla. Takže tady došlo k nedorozumění v použitých slovech - správně × jak jsem potřeboval. ls řadil výstup správně, přesně podle man, ale ty jsi chtěl jiné řazení, na které jsi našel i potřebný přepínač.