Re: cat и echo. Подскажи те, как правильно.

2010-03-10 Пенетрантность Игорь Чумак

Валентин Лоскутов пишет:

Здравствуйте.


  

Имею:

$ cat 1234.txt
1
2
3
4

$ MYVAR=`cat 1234.txt`; echo $MYVAR
1 2 3 4

$ MYVAR=`cat 1234.txt`; echo $MYVAR | tr [\ ] [*]
1*2*3*4

т.е. переносы строк куда-то пропали (строки соединились через пробел).
Как правильно сделать cat (grep и т.п.) файла в переменную, а потом вывести её 
в многострочном виде?


  
  

А что должно получиться в результате?

вариант
while read aaa
do
echo $aaa
done 1234.txt

не устроит?



Я надеялся, что вывод
$ MYVAR=`cat 1234.txt`; echo $MYVAR
будет аналогичен выводу просто
$ cat 1234.txt
но это не так.

Была мысль сразу задачу описать... :-)

Есть большой файл, по нему делается grep (работает несколько /десятков/ секунд) 
в переменную. Это первый этап. Потом делается несколько операций по этой 
переменной (подсчёт некоторых строк, какие-то замены и т.п.). Это второй этап. 
А потом вывод всего этого безобразия, в том числе и переменной, полученной на 
первом этапе. Так вот на первом этапе результатом grep являются несколько 
строк, а выводятся они в одну строку, что меня не устраивает. Делать второй 
этап по основному файлу (вместо переменной, полученной на первом этапе) очень 
долго. И временный файл использовать не хочется.

Вот расширенный пример:

$ cat 1234.txt
1 1
2 1
3 2
4 2

$ MYVAR=`grep 2 1234.txt`; echo $MYVAR
2 1 3 2 4 2

$ MYVAR=`grep 2 1234.txt`; echo $MYVAR | tr [\ ] [*]
2*1*3*2*4*2

Я надеялся получить на выходе

2 1
3 2
4 2

и 


2*1
3*2
4*2

соответственно.

До свидания.


  

Я бы предложил это на перле сделать ;)
На перле работа со списками строк поизячнее выглядит.
while (STDIN)
{
 chomp;
 /regexp/  push @MYVAR,$_; // вот и фильтрация, и заливка в список
};
foreach (@MYVAR)
{
 tr /\ /*/; // вроде так замена делается
  print $_.\n; // вот итерация по списку
}



--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4b976104.6010...@generali.garant.ua



Re: cat и echo. Подскажи те, как правильно.

2010-03-10 Пенетрантность Игорь Чумак

Andrey Rahmatullin пишет:

On Wed, Mar 10, 2010 at 11:06:12AM +0200, Игорь Чумак wrote:
  

Я бы предложил это на перле сделать ;)
На перле работа со списками строк поизячнее выглядит.


Я бы предложил это на чём угодно сделать, на чём угодно работа со строками
и не только лучше чем в шелле.

  

Предлагайте.
Я серьёзно. Вдруг ваш пример сподвигнет кого-нибудь на изучение , 
например, питона ;)

P.S. Учитесь квотить.

  

А что не так??


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4b977bf9.7030...@generali.garant.ua



Re: cat и echo. Подскажи те, как правильно.

2010-03-10 Пенетрантность Игорь Чумак

Andrey Rahmatullin пишет:

On Wed, Mar 10, 2010 at 01:01:13PM +0200, Игорь Чумак wrote:
  

Я бы предложил это на перле сделать ;)
На перле работа со списками строк поизячнее выглядит.


Я бы предложил это на чём угодно сделать, на чём угодно работа со строками
и не только лучше чем в шелле.
  

Предлагайте.


Предлагаю сделать это на питоне.

  
Я серьёзно. Вдруг ваш пример сподвигнет кого-нибудь на изучение , 
например, питона ;)


А, вам код написать? Влом :)

  
Да мне как бы не сильно и надо.. Задачу с анализом того файла другой 
человек решает..

Но не может не радовать, что есть люди, ЗНАЮЩИЕ КАК ;)

P.S. Учитесь квотить.
  

А что не так??


Несколько экранов мусора, включая приветствие и прощание.

  

А.. мне тоже влом было вырезать приветствие, прощание..


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4b97960e.70...@generali.garant.ua



Re: cat и echo. Подскажи те, как правильно.

2010-03-09 Пенетрантность Игорь Чумак

Валентин Лоскутов пишет:

Здравствуйте.

Имею:

$ cat 1234.txt
1
2
3
4

$ MYVAR=`cat 1234.txt`; echo $MYVAR
1 2 3 4

$ MYVAR=`cat 1234.txt`; echo $MYVAR | tr [\ ] [*]
1*2*3*4

т.е. переносы строк куда-то пропали (строки соединились через пробел).
Как правильно сделать cat (grep и т.п.) файла в переменную, а потом вывести её 
в многострочном виде?


  

А что должно получиться в результате?

вариант
while read aaa
do
echo $aaa
done 1234.txt

не устроит?


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4b96732b.1040...@generali.garant.ua