Portál AbcLinuxu, 8. května 2025 18:36
Ř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:~$
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
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.