Re: cat и echo. Подскажи те, как правильно.
Валентин Лоскутов пишет: Здравствуйте. Имею: $ 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. Подскажи те, как правильно.
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. Подскажи те, как правильно.
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. Подскажи те, как правильно.
Валентин Лоскутов пишет: Здравствуйте. Имею: $ 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