Portál AbcLinuxu, 11. května 2025 04:43

Dotaz: Jak zachází SED s koncem řádku?

11.3.2009 10:02 jan.rok | skóre: 21
Jak zachází SED s koncem řádku?
Přečteno: 170×
Odpovědět | Admin

Dobrý den,

mám textový soubor s dosovými konci řádků 0x0D,0x0A.

Na něm provedu náhradu:

sed -i 's/STOP=.*/STOP=/' soubor.txt

(tedy každý řádek začínající řetězcem 'STOP=' nahradit tak, aby obsahoval jen řetězec 'STOP=').

SED mi upraví soubor, ale s unixovými konci řádků 0x0A. A to i na řádcích, kde se náhrada řetězců neprováděla. Proč?

Díky, JR

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

Odpovědi

11.3.2009 10:10 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Jak zachází SED s koncem řádku?
Odpovědět | | Sbalit | Link | Blokovat | Admin
SED mi upraví soubor, ale s unixovými konci řádků 0x0A. A to i na řádcích, kde se náhrada řetězců neprováděla. Proč?

Tipnu si, že je naprogramován tak, aby se popral i s divnými (tj. Windows-styl) konci řádků na vstupu, ale při výpisu už používá normální '\n' a tudíž na Unixu vypíše jediný znak.

Pokud tam mermomocí chcete nazpět CR-LF, buď to prožeňte unix2dosem nebo to lze přímo v sedu (sekce TEXT CONVERSION AND SUBSTITUTION).

I am always ready to learn although I do not always like to be taught. (W. Churchill)
Michal Wirth avatar 11.3.2009 10:30 Michal Wirth | skóre: 26
Rozbalit Rozbalit vše Re: Jak zachází SED s koncem řádku?
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed rozseka text na radky a kazdou zpracovava zvlast, staci tedy kdyz provede jeste substituci s/$/\r/ - coz je CR, pak po konecnem sestaveni s LF ziskate kyzene CR+LF
Důležité se časem stává absurdním, absurdní se časem mění v důležité.

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.