[TLUG] jak najproście j dodać kilka liczb

Marcin Sochacki tlug at linux.gda.pl
Mon, 7 Mar 2005 12:06:39 +0100


On Mon, Mar 07, 2005 at 10:32:13AM +0100, Rafał Woźniak wrote:
> Dnia poniedziałek, 7 marca 2005 10:13, Marcin Sochacki napisał:
> > On Mon, Mar 07, 2005 at 10:07:49AM +0100, Rafał Woźniak wrote:
> > > co przy echo $all wynik daje:
> > > 953 862
> > > i teraz jak najprościej dodaj te (akurat w przykładzie) dwie liczby?
> >
> > echo "$all" | tr ' ' + | bc
> 
> niestety nie działa, choć w skrypcie taka konstrukcja najładniejby wyglądała

To usuń cudzysłowy wokół $all, powinno pomóc. Najwyraźniej te liczby nie
są w rzeczywistości oddzielone spacjami, a enterami, stąd ten tr nie
zadziałał.

Można też wymusić podmianę enterów:
echo "$all" | tr '\n' + | sed 's/+$/\n/' | bc

Ten sed będzie zapewne potrzebny do usunięcia ostatniego plusika.

BTW, czy ktoś wie czemu nie działa w sedzie szukanie znaku nowej linii
(\n)? Np.:

sed 's/\n/+/' /etc/passwd

Chcę połączyć wszystkie linie z /etc/passwd wstawiając między nie
plusiki. U mnie nie przynosi to efektu (jak i wiele innych kombinacji
jakie robiłem). Oczywiście można to zrobić innym programem, ale zawsze
intrygowało mnie czemu nie działa mi ten \n w sedzie.

Wanted