[SOLVED][BASH] Usuwanie znaków nowej linii
: 30 maja 2010, 16:33
Tak jak w temacie jak usunąć wszystkie znaki nowej linii z pliku lub zmiennej
Polskie forum użytkowników Ubuntu
https://ubuntu.pl/forum/
W bashu i dashu, ale już nie w żadnej lepszej powłoce (np. zsh) ? po prostu nie używaj cudzysłowu:rryk pisze:usunąć wszystkie znaki nowej linii z (...) zmiennej
Kod: Zaznacz cały
azhag@debian:/tmp$ foo="a
> b
> c"
azhag@debian:/tmp$ echo "$foo"
a
b
c
azhag@debian:/tmp$ echo $foo
a b c
azhag@debian:/tmp$
Kod: Zaznacz cały
zmienna=`cat plik`
Kod: Zaznacz cały
zmienna=$(tr '\n' ' ' <plik)
W takim razie problem leży gdzieś indziej, bo to po prostu musi działać.rryk pisze:chce je po po prostu usunąć nie zamieniać na spacje lecz niestety nie chce to działać bo po zapisaniu do pliku znowu mam normalne linijki
Kod: Zaznacz cały
azhag@debian:/tmp$ cat plik
a
b
c
d
e
f
g
azhag@debian:/tmp$ zmienna=$(tr -d '\n' <plik)
azhag@debian:/tmp$ echo $zmienna
abcdefg
Kod: Zaznacz cały
sed ':a;N;$!ba;s/\n//g'
perl -e 'while (<>) { chomp; print; }; exit;'
awk '{ printf "%s ", $0 }'
Żaden problem:rryk pisze:EDIT:
Tu chodzi o to że mam zmienną np
google=`wget -q google.pl -O -`
chce teraz zapisać to do pliku tak aby wszystko było ciągłym tekstem tj. nei zawierało "enterów"
Kod: Zaznacz cały
azhag@debian:/tmp$ ZMIENNA=`wget -q google.pl -O -`
azhag@debian:/tmp$ ZMIENNA2=`wget -q google.pl -O - | tr -d '\n'`
azhag@debian:/tmp$ echo "$ZMIENNA" >plik_wielolinijkowy
azhag@debian:/tmp$ echo $ZMIENNA >plik_jednololinijkowy_ze_spacjami_zamiast_nowych_linii
azhag@debian:/tmp$ echo "$ZMIENNA2" >plik_jednololinijkowy_bez_spacji
azhag@debian:/tmp$ wc -l plik_*
1 plik_jednololinijkowy_bez_spacji
1 plik_jednololinijkowy_ze_spacjami_zamiast_nowych_linii
10 plik_wielolinijkowy
12 razem
Kod: Zaznacz cały
ludz
:
lol
</p>
Kod: Zaznacz cały
ludz: lol
Nieprawda. To działa wszędzie. Ze wszystkim, nie ma znaczenia czy to plik, zmienna, dane właśnie pobierane skądkolwiek. Zawsze kasuje znak nowej linii.rryk pisze:no akurat na google to dziala ale u mnei nie
No tak, że ja używam tylko GNU/Linuksa, nie oznacza jeszcze, że cały świat to robi. ;)beluosus pisze:Należy pamiętać, że strony mogą być zapisane z windowsowym zakończeniem linii (CR+LF) albo unicode albo jeszcze co innego...