Portál AbcLinuxu, 8. května 2025 16:10

Dotaz: sed - vymazat vse po ':'

23.5.2009 18:20 petrr
sed - vymazat vse po ':'
Přečteno: 579×
Odpovědět | Admin

Nevite nekdo nahodou jak vypsat jen cast pred urcitym znakem? (tedy v nize uvedenym priklade jen retezec 'tohle' delimiter je dvojtecka)

echo 'jen tohle : to uz ne' |sed ?

Diky

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

default avatar 23.5.2009 18:33 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: sed - vymazat vse po ':'
Odpovědět | | Sbalit | Link | Blokovat | Admin

Co třeba:

sed -e 's/:.*//'
kozzi avatar 23.5.2009 18:34 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: sed - vymazat vse po ':'
Odpovědět | | Sbalit | Link | Blokovat | Admin
neco jako:
sed 's/\(.*\):.*/\1/
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
23.5.2009 19:20 petrr
Rozbalit Rozbalit vše Re: sed - vymazat vse po ':'

diky, to je presne ono :)

default avatar 23.5.2009 20:22 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: sed - vymazat vse po ':'

Jenže tohleto ti sežere více dvojteček, než autor patrně zamýšlel. Regulární výrazy jsou hladové. :-D

$ echo 'asd : efg : hij' | sed -e 's/\(.*\):.*/\1/'
asd : efg 
kozzi avatar 24.5.2009 02:48 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: sed - vymazat vse po ':'
no vsak prave ye nebylo napsano jak to chce, ja to bral tak ze se chce zbavit toho co je za posledni dvojteckou, takze to moje pocita i stim ze text pred tim co chce odstranit, muze obsahovat prave i dvojtecku.
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
default avatar 24.5.2009 09:00 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: sed - vymazat vse po ':'

No, a já to bral zase tak, že se chce zbavit všeho od první dvojtečky. :-D

24.5.2009 12:25 Ash | skóre: 53
Rozbalit Rozbalit vše Re: sed - vymazat vse po ':'
Což je asi častější případ užití třeba u # komentářů které obsahují znak # apod. A taky by to bylo v souladu s principem Occamovy břitvy, kdy když chci zachovat vše před dvojtečkou, tak krom možnosti zachovat vše až do první dvojtečky je samozřejmě možnost zachovat vše do druhé, třetí, páté, osmé dvojtečky, ale do té první je to přirozené, do dalších X to je potřeba nějak zdůvodnit proč jako. Jako když řeknu že "jdu do města", tak tím kousek od Písku mohu myslet Písek, ale taky Bukurešť nebo New York, ale to si už vyžaduje vysvětlení proč Písek nestačí, když je to město. Ale třeba by to vyřešila anketa?? :)
23.5.2009 19:28 platYpus
Rozbalit Rozbalit vše Re: sed - vymazat vse po ':'
Odpovědět | | Sbalit | Link | Blokovat | Admin

Jenom na doplněni: sed je na takovouhle trivialni vec tak trosku "kanon na vrabce". Na to mate v linuxu prikaz cut:


echo "jen tohle : tohle uz ne" | cut -d ":" -f 1

 

24.5.2009 20:06 petrr
Rozbalit Rozbalit vše Re: sed - vymazat vse po ':'

nejak se to tu rozjelo :)

ano, kanon to mozna je, ale ono nejde o to, ze je to kanon, ale o to, ze nic jineho neumim :(

kazdopadne jeste jednou dik vsem zucasnenym

24.5.2009 23:55 Ash | skóre: 53
Rozbalit Rozbalit vše Re: sed - vymazat vse po ':'
Ale to už není pravda, teď už umíte cut ;)

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.