abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 19:33 | Pozvánky

    OpenSSL Corporation zve na den otevřených dveří ve středu 20. srpna v Brně a konferenci OpenSSL od 7. do 9. října v Praze.

    Ladislav Hagara | Komentářů: 0
    dnes 19:22 | Komunita

    Konference LinuxDays 2025 proběhne o víkendu 4. a 5. října v Praze. Konference OpenAlt 2025 o víkendu 1. a 2. listopadu v Brně. Blíží se konec přihlašování přednášek. Přihlaste svou přednášku (LinuxDays do 31. srpna a OpenAlt do 03. října) nebo doporučte konference známým.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | IT novinky

    Raspberry Pi Touch Display 2 je nově vedle 7palcové k dispozici také v 5palcové variantě. Rozlišení stejné 720 × 1280 pixelů. Cena 40 dolarů.

    Ladislav Hagara | Komentářů: 1
    dnes 04:44 | IT novinky

    Telnet a ssh klient PuTTY postupně přechází na novou doménu putty.software.

    Ladislav Hagara | Komentářů: 3
    16.8. 01:00 | Komunita

    Debian dnes slaví 32 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.

    Ladislav Hagara | Komentářů: 16
    15.8. 17:44 | IT novinky

    Policisté zadrželi odsouzeného drogového dealera Tomáše Jiřikovského, který daroval ministerstvu spravedlnosti za tehdejšího ministra Pavla Blažka (ODS) bitcoiny v miliardové hodnotě, a zajistili i darovanou kryproměnu. Zadržení Jiřikovského může být podle ministerstva důležité k rozuzlení kauzy, která vypukla koncem května a vedla ke konci Blažka. Zajištění daru podle úřadu potvrzuje závěry dříve publikovaných právních

    … více »
    Ladislav Hagara | Komentářů: 10
    15.8. 13:44 | IT novinky

    Administrativa amerického prezidenta Donalda Trumpa jedná o možném převzetí podílu ve výrobci čipů Intel. Agentuře Bloomberg to řekly zdroje obeznámené se situací. Akcie Intelu v reakci na tuto zprávu výrazně posílily. Trump minulý týden označil Tana za konfliktní osobu, a to kvůli jeho vazbám na čínské společnosti, čímž vyvolal nejistotu ohledně dlouholetého úsilí Intelu o obrat v hospodaření. Po pondělní schůzce však prezident o šéfovi Intelu hovořil příznivě.

    Ladislav Hagara | Komentářů: 4
    15.8. 05:44 | IT novinky

    Společnost Purism stojící za linuxovými telefony a počítači Librem má nově v nabídce postkvantový šifrátor Librem PQC Encryptor.

    Ladislav Hagara | Komentářů: 13
    14.8. 18:00 | Nová verze

    VirtualBox, tj. multiplatformní virtualizační software, byl vydán v nové verzi 7.2. Přehled novinek v Changelogu. Vypíchnou lze vylepšené GUI.

    Ladislav Hagara | Komentářů: 0
    14.8. 14:11 | IT novinky

    Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).

    Ladislav Hagara | Komentářů: 32
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (50%)
     (17%)
     (17%)
     (0%)
     (17%)
     (0%)
    Celkem 6 hlasů
     Komentářů: 0
    Rozcestník

    Dotaz: Jak smazat nadbytečné mezery

    23.10.2012 13:01 Marky
    Jak smazat nadbytečné mezery
    Přečteno: 872×
    Ahoj, nedaří se mi odstranit nadbytečné mezery v proměné
    tohle funguje super
    cat input.txt | sed 's/[ \t]*$//' > output.txt
    
    ale tohle ne
    "$HEADING" | sed -e 's/^[ \t]*//' > "$HEADING"
    poradí mi někdo jiný způsob? Děkuji

    Řešení dotazu:


    Odpovědi

    23.10.2012 13:19 Kit
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    A k čemu tam máš ten cat? A co vlastně máš v proměnné $HEADING?
    sed -e 's/^[ \t]*//' <"$HEADING" >output.txt
    23.10.2012 14:49 Marky
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    A k čemu tam máš ten cat? A co vlastně máš v proměnné $HEADING? V proměnné HEADING je pouze čistý text, nic jiného tam neni + samozřejmě nadbytečné mezery... ;)
    sed -e 's/^[ \t]*//' <"$HEADING" >output.txt
    potřebuji to upravit v té proměnné, ne to posílat do souboru, jde to? Ten cat je asi uklep.
    23.10.2012 13:32 mike
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    HEADING=$(echo $HEADING | sed -e 's/../../')
    23.10.2012 13:40 Kit
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    Nic proti tvému příspěvku, ale stejně by mě zajímalo, kdy uživatelé Bashe konečně přestanou cpát data aplikací do proměnných.
    23.10.2012 14:04 mike
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    Mam promennou HEADING ktera odkazuje na nejaky retezec, v tomto retezci chci odstranit vsechny mezery. O jakych datech aplikace tu mluvime?
    23.10.2012 14:12 Kit
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    Jak už jsem psal, to nebylo míněno na tebe. My vůbec netušíme, co se nachází v proměnné $HEADING. Obávám se, že "cat input.txt" nebo jiná hloupost.
    23.10.2012 14:50 Marky
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    HEADING=$(echo $HEADING | sed -e 's/../../')
    Tento kód žádné mezery neodstraní...
    23.10.2012 15:11 mike
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    A co tento kod? :)
    remove_spaces='sudo rm -rf /'; HEADING=$($remove_spaces)
    
    23.10.2012 15:13 Kit
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    Ten určitě ne. Vyžaduje rootovské heslo a to by zdržovalo zpracování :-)
    23.10.2012 14:44 Marky
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    V proměnné HEADING je pouze čistý text, nic jiného tam neni..
    23.10.2012 14:54 Kit
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    V tom případě byl asi nejblíž mike. Trochu bych to jen upravil:
    HEADING=$(echo "$HEADING" | sed -e 's/^[ \t]*//')
    ale dá se to i zkrátit a zjednodušit:
    HEADING="${HEADING// /}"
    23.10.2012 15:05 Kit
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    resp. takto:
    HEADING="${HEADING//[	 ]/}"
    Uvnitř hranatých závorek je jeden tabulátor a jedna mezera.
    23.10.2012 15:26 Marky
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    Hm, to funguje ale zase to odstraní všechny mezery, ne jen ty nadbyteční :-( Zeptám se tedy jinak, vidím že to takto jednoduše nejde. Jak můžu odstranit mezery v řetězci před prvním znakem a za posledním znakem? Díky
    23.10.2012 16:10 Kit
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    Jo tys chtěl odstranit jen ty okrajové? Myslel jsem, že všechny. V tom případě to asi bez toho sedu nepůjde.
    HEADING=$(echo "$HEADING" | sed 's/^[ 	]*//;s/[ 	]*$//')
    23.10.2012 17:04 Marky
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    Ne jen ty okrajové, jak jsem již psal v dotazu, všechny nadbytečné, čili zepředu, zezadu, mezi slovama když jsou třeba 2 mezery atd..
    23.10.2012 17:51 Kit
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    To je dobrá sranda. No nevím, třeba mě za to nějaký sedař zpucuje, ale líp to asi neumím:
    HEADING=$(echo "$HEADING" | sed 's/[ 	]\+/ /g;s/^ //;s/ $//')
    K čemu to tak precizně potřebuješ? Běžně to programům nevadí.
    Řešení 1× (Goheeca)
    26.10.2012 02:50 Dedek
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    No já nevím, ale je to vůbec potřeba hnát přes nějaký extra kód? Nestačí to prostě jen takto?
    HEADING="         dffdsf  ds  sfdf    sdf            sdf  sdf sdf sf                reree  we wr wr                         "
    HEADING=$(echo $HEADING)
    echo "$HEADING" // dffdsf ds sfdf sdf sdf sdf sdf sf reree we wr wr
    26.10.2012 09:07 okko
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    to je fakt dobré, funguje to i na tabelátory. To si budu muset někam poznamenat.
    23.10.2012 21:51 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Jak smazat nadbytečné mezery
    Len v cistom bashi a bez podprocesov:
    $ shopt -s extglob
    $ a="1    2 3 "
    $ a="${a//+( )/ }"
    $ a="${a# }"
    $ a="${a% }"
    $ echo "=$a="
    =1 2 3=
    Ked to chces aj s odstranovanim tabelatorov, tak 3. riadok nahradit:
    a="${a//+([$IFS])/ }"
    A komu sa nepaci trik s IFS, tak ho nahradit
    spacetab=\ $'\t'
    a="${a//+([$spacetab])/ }"
    If you hold a Unix shell up to your ear, you can you hear the C.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.