Portál AbcLinuxu, 4. prosince 2025 01:22
Řešení dotazu:
petr@nt:~$ echo > pokus.txt petr@nt:~$ cat pokus.txt petr@nt:~$ ls -l pokus.txt -rw-rw-r-- 1 petr petr 1 2012-02-09 14:39 pokus.txt petr@nt:~$Pošli pouze echo do souboru se vloží znak konce řádku 0x0A.
petr@nt:~$ echo -n "Prvni text " > pokus.txt petr@nt:~$ echo -n "pokracovani na stejnem radku...." >> pokus.txt petr@nt:~$ echo >> pokus.txt petr@nt:~$ echo -n "pokracovani na dalsim radku...." >> pokus.txt petr@nt:~$ echo >> pokus.txt petr@nt:~$ echo >> pokus.txt petr@nt:~$ echo -n "a jeden řadek jsme přeskočily...." >> pokus.txt petr@nt:~$ cat pokus.txt Prvni text pokracovani na stejnem radku.... pokracovani na dalsim radku.... a jeden řadek jsme přeskočily....petr@nt:~$
Musíš poslat kody \n a \r co je 0x0A 0x0D v jakém pořadí to bude windows brát nevím zda \n\r nebo \r\n.
CRLF, tedy \r\n neboli 0x0d 0x0a.
Duvod je prosty: na mechanickych terminalech navrat voziku (tedy CR) trva delsi dobu, nez posun na novy radek. Takze se spusti navrat a nez se provede, tak uz se stihne provest i posun. Aspon tohle vysvetleni jsem nekde cetl 
Dejv
Prostě je v tom stejnej bordel jako kdysi v kodování češtiny v dosu....
echo -e "prvni\ndruhy\n"
echo -e \n je totéž jako echo -e n. Když přidáš backslash nebo uvozovky, tak ovšem vypíše dva prázdné řádky, protože echo dělá konec řádku samo o sobě. Jeden konec řádku vypíše samotné echo.
printf "\n" vypíše prázdný řádek (i s koncem).
Přesměrování ./script >soubor funguje, to druhé pravděpodobně taky (pokud děláš, co vypadá, že děláš).
Takže nevidíš-li konce řádků, problém je nejspíš někde úplně jinde (třeba že se na unixový texťák díváš v microsoftím textovém editoru). Budeš sem muset dát kompletnější ukázku...
./script | unix2dos >output.txt
pokud ho tedy současně nebudeš používat v Unixu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.