LINUX.ORG.RU
ФорумAdmin

sed съедает табуляцию


0

0

Нужно текстовый файл преобразовать в html-файл.
Считываю исходный файл построчно и добавляю <BR>
1. Строки выцепляю командой sed -n "$i"p $filename
Все бы хорошо, если бы не пропажа табуляции, поэтому приходится предварительно делать замену табуляции на не используемый символ:
cat $filename|sed 's/\t/%/g' >$filename-tmp1
а после добавления <br> делать обратную замену

man sed пройден, но вопрос остался:
как сказать sed'у, чтобы не трогал табуляцию (если такое возможно)?

2. Если организовать цикл for i in `cat $filename`
то также предварительно приходится заменять все пробелы на
неиспользумый символ, а потом считывать получившиеся строки.

3. Без замен мне видится решение только через
head -$i $filename|tail -1
но это уж как-то дубово

4.Возможно, есть какое средство типа txt2html (у меня SUSE, и я в нем не нашла подобного), но в данном случае интересует,
есть ли красивый способ вытащить из файла строку "как есть",
ничего не меняя в исходном файле предварительно?


Заключить текст в теги 

<pre>
your
  text
   here
</pre>

sdio ★★★★★
()

Вобще, в целом алгоритм не понятен, но у меня sed -n "$i"p $filename выводит строку $i сохраняя табуляции. Если вам не нравится sed, используйте awk, хотя я даже приблизительно не могу представить алогритм, в котором каждую строку из файла нужно "выдирать" с помощью sed...

awk "{ if ( NR == $i ) {print \$0} }" < $filename

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

Спасибо, то, что нужно.

> но у меня sed -n "$i"p $filename выводит строку $i сохраняя >табуляции

sed -n "$l"p $filename выдает:
HReceived: $>+CheckReceived
# Record the presence of the header Received
SCheckReceived
R$* $: $(storage {RecCheck} $@ $1 $)

awk "{ if ( NR == $i ) {print \$0} }" < $filename выдает:
HReceived: $>+CheckReceived
# Record the presence of the header Received
SCheckReceived
R$* $: $(storage {RecCheck} $@ $1 $)

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

и форум тоже съел TAB :)
Ну да бог с ним, главное, решение нашлось.
Еще раз спасибо.

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