LINUX.ORG.RU

sed, часть 2

 


0

1

Откуда берется лишний перенос строки:

	i=1;
	while [ $i -le $Count ]
	do
		echo -n "│ "
		echo -n "$Numbers" | sed -n "${i}p";
		
		i=$(($i+1));
		echo;
	done;
}
│ 7670148

│ 7669861

│ 7106872

│ 7671137

│ 7668820

Откуда берется лишний перенос строки

из $Numbers ?

anonymous ()

ах да, и открой для себя arrays

anonymous ()
Ответ на: комментарий от anonymous

Там такое значение:

453435
346576
565636
356356
363563

Если я просто делаю echo -n «$Numbers», то есть только один перенос:

7667723
7671101
7670590
7671155
7668019
7665279
7670657
7668743
7645610
7670932
7106872
7669861
7668434
7670928
7645861
7670327
7670148
7668820
7669254
7669672
7666771
7667094
7669832
7664142
7670543
AlexCones ★★★ ()
Ответ на: комментарий от anonymous

У меня при парсинге там проблема загрузить в Array:

Numbers=$(grep -oE --regexp="/[0-9]{7}" $ProgramPath$PagesPath$TempFileName | sed -e "s/\///g");

AlexCones ★★★ ()
Ответ на: комментарий от AlexCones

Там такое значение:

чтд (что и требовалось доказать)

Если я просто делаю echo -n «$Numbers»

то происходит word splitting

anonymous ()
Ответ на: комментарий от anonymous

Мне на той же строке еще кой-чего вывести надо будет. а перенос ставится сразу после первого.

AlexCones ★★★ ()
Ответ на: комментарий от AlexCones

тогда только избавиться от sed, ибо он работает построчно в данном случае обрабатывай «пословно»

anonymous ()
Ответ на: комментарий от anonymous

ну или давай целиком первичную задачу всего скрипта, как обычно проще переписать с нуля :3

anonymous ()

Переходи на более нормальный язык относительно (ba)sh, хотя бы на perl, т.к. в твоем разборе html, тебе встретится много интересного.

Те же Numbers можно было бы загнать в hash и легко проверять их наличие или отсутствие.

sdio ★★★★★ ()
Ответ на: комментарий от anonymous

Сделал вот так:

echo -n "$Numbers" | sed -n "${i}p" | tr -d '\012';

Спасибо!

AlexCones ★★★ ()
Ответ на: комментарий от anonymous

первичную задачу всего скрипта

Он же парсит лоровский html

sdio ★★★★★ ()

AlexCones

Откуда берется лишний перенос строки:

ну sed один перенос строки выводит, а echo - второй. Чем вы недовольны? Sed всегда выводит строчки, а строчка кончается \n по определению. У вас после каждого числа в $Numbers перевод строки, с чего вы решили, что sed его должна срезать?

drBatty ★★ ()
Ответ на: комментарий от AlexCones

AlexCones

Если я просто делаю echo -n «$Numbers», то есть только один перенос:

7667723
7671101
7670590
7671155
7668019
7665279
7670657
7668743
7645610
7670932
7106872
7669861
7668434
7670928
7645861
7670327
7670148
7668820
7669254
7669672
7666771
7667094
7669832
7664142
7670543

you made my day

drBatty ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.