Portál AbcLinuxu, 12. května 2025 10:55

Dotaz: sed /\.// zapis tecky

5.1.2010 11:01 jirikon
sed /\.// zapis tecky
Přečteno: 226×
Odpovědět | Admin
Přečetl jsem si že se tečka v posix píše: \.

jak zaměnit (smazat) tečky?

echo 'ldkfjasldjkf.sdfsf.sdfasdf.sad.fdffs.adf.sdf' > tecky

sed s/\.// tecky

sed s/.// tecky

Oba výtupy jsou stejné:

dkfjasldjkf.sdfsf.sdfasdf.sad.fdffs.adf.sdf

ale já chci:

ldkfjasldjkfsdfsfsdfasdfsadfdffsadfsdf

Je to vlastnost, nebo bug?

Řešení dotazu:


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

Odpovědi

5.1.2010 11:04 l4m4
Rozbalit Rozbalit vše Re: sed /\.// zapis tecky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je to nepoužití apostrofů kolem argumentu sedu, takže je backslashů málo.

Je to nepoužití /g aby se nahradilo všechno.

Je to jako vždy mezi židlí a klávesnicí.
sed 's/\.//g' tecky
5.1.2010 11:10 jirikon
Rozbalit Rozbalit vše Re: sed /\.// zapis tecky
diky
5.1.2010 11:07 0-58glfsdhesr
Rozbalit Rozbalit vše Re: sed /\.// zapis tecky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Sed maze jen prvni tecku. Pokud chces smazat vsechny, tak musis pouzit g specifikator:

echo 'ldkfjasldjkf.sdfsf.sdfasdf.sad.fdffs.adf.sdf' | sed 's/\.//g'

Na smazani pouze jednoho znaku lze s vyhodou pouzit i tr:

echo 'ldkfjasldjkf.sdfsf.sdfasdf.sad.fdffs.adf.sdf' | tr -d '.'

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.