ОБОЛОЧКА текст в HTML

0

теперь у меня есть этот код оболочки, и мне нужно добавить HTML-теги к простому тексту. Другими словами, мне нужно форматировать текст для базового HTML-кода.

Теперь у меня есть этот скрипт оболочки:

#!/bin/sh
# t2h {$1} html-ize a text file and save as foo.htm
NL="
"
cat $1 \
| sed -e 's/ at / at /g' \
| sed -e 's/[[:cntrl:]]/ /g'\
| sed -e 's/^[[:space:]]*$//g' \
| sed -e '/^$/{'"$NL"'N'"$NL"'/^\n$/D'"$NL"'}' \
| sed -e 's/^$/<\/UL><P>/g' \
| sed -e '/<P>$/{'"$NL"'N'"$NL"'s/\n//'"$NL"'}'\
| sed -e 's/<P>[[:space:]]*"/<P><UL>"/' \
| sed -e 's/^[[:space:]]*-/<BR> -/g' \
| sed -e 's/http:\/\/[[:graph:]\.\/]*/<A HREF="&">[&]<\/A> /g'\
                                > foo.htm

И вот пример текста:

"Greatest properly off ham exercise all. Unsatiable invitation its possession nor off. All difficulty estimating unreserved increasing the solicitude. Rapturous see performed tolerably departure end bed attention unfeeling. On unpleasing principles alteration of. Be at performed preferred determine collected. Him nay acuteness discourse listening estimable our law. Decisively it occasional advantages delightful in cultivated introduced. Like law mean form are sang loud lady put.     "

"Greatest properly off ham exercise all. Unsatiable invitation its possession nor off. All difficulty estimating unreserved increasing the solicitude. Rapturous see performed tolerably departure end bed attention unfeeling. On unpleasing principles alteration of. Be at performed preferred determine collected. Him nay acuteness discourse listening estimable our law. Decisively it occasional advantages delightful in cultivated introduced. Like law mean form are sang loud lady put.     "

И это должно быть примерно так:

<html>
<p>Greatest properly off ham exercise all. Unsatiable invitation its possession nor off. All difficulty estimating unreserved increasing the solicitude. Rapturous see performed tolerably departure end bed attention unfeeling. On unpleasing principles alteration of. Be at performed preferred determine collected. Him nay acuteness discourse listening estimable our law. Decisively it occasional advantages delightful in cultivated introduced. Like law mean form are sang loud lady put.</p><br />
<br />
<p>Greatest properly off ham exercise all. Unsatiable invitation its possession nor off. All difficulty estimating unreserved increasing the solicitude. Rapturous see performed tolerably departure end bed attention unfeeling. On unpleasing principles alteration of. Be at performed preferred determine collected. Him nay acuteness discourse listening estimable our law. Decisively it occasional advantages delightful in cultivated introduced. Like law mean form are sang loud lady put.</p>
</html>
  • 0
    Возможно, вы можете использовать MarkDown?
  • 0
    Ваша первая команда "sed" действительно что-то делает? Кстати, у вас есть сценарий, вход и выход, но у вас также есть вопрос по этому поводу?
Теги:
text

2 ответа

0

Привет, попробуйте что-то вроде этого bash script DataFile - это ваш файл с текстом, который нужно отформатировать

#!/bin/bash
echo '<html>' >foo.htm
cat DataFile |tr -d '"'|grep -v "^$" |\
while read Line
do
cat <<eof
  <p>${Line}</p><br><br>
eof
done >>foo.htm
echo '</html>' >>foo.htm
0

Я вижу, что вы хотите использовать "sed" для замены новых строк по любой причине.
ЭТО НЕ БУДЕТ РАБОТАТЬ.
"sed" слеп для новых строк, потому что "sed" ориентируется на работу. Это означает, что новая строка получает "sed" до того, как она начнет оцениваться.

Самое легкое обходное решение - использовать "tr" для замены каждой новой строки другим символом, прежде чем начинать с "sed". Этот другой символ не должен быть символом, который можно найти в текстовом файле (или вы должны сделать свою собственную escape-последовательность так или иначе).

Если вы исправили эти ошибки и все еще не сработали, отправьте исправленный код.
А также опубликуйте, что вы ожидаете от каждой команды sed.

PS Возможно, вам будет лучше с использованием базовой строки bash.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню