Это возможно с sed , но довольно сложно, чем любые парсеры XML.
sed '
:2
#puts open and close tag in one pattern
/\s*<\([^>]*>\).*<\/\1\s*$/!{
N
b2
}
#mark pairable tags by `#` symbol
:1
s/\(.*<\)\(\([^#> ]*\).*<\)\/\3/\1#\2#\/\3/
#other variant
#s/\(.*<\)\(\([^><]*\)[^>]*>.*<\/\3\)>/\1#\2#>/
t1
#change non-marked text
s/<\([^#]*\)>/\<\1\>/g
#remove marks
s/#//g
' file.html
Похоже, у вас возник ряд проблем, которые кратко описаны ниже.Вы почти наверняка должны использовать порт для python, как указано @mjturner, который будет использовать собственный FreeBSD OpenSSL.
csh
синтаксис set CC clang
устанавливает две переменные с именами CC
и clang
в пустую строку, вы хотите установите CC = clang
, но даже это не сработает (см. следующий пункт) csh
оболочке не повлияет ни на что другое, вы действительно хотите использовать setenv CC clang
(обратите внимание, что здесь не используется =
). config
- это сценарий sh
, поэтому переменная должна быть экспортирована, чтобы ее можно было увидеть. libc
является не зависимостью от gcc
, почти все, что вы связываете динамически, будет связано с libc (во FreeBSD это не GNU glibc). Альтернативой является связывание статически , что, если возможно, удаляет динамическую зависимость, встраивая требуемый код в окончательный двоичный файл.
(При использовании gcc
может быть зависимость libgcc
на некоторых платформах и используется для обработки исключений. Этого труднее избежать.)
Я ожидал, что у вас возникнут проблемы с статической компоновкой Python. Если вместо этого вы создаете OpenSSL и python с использованием clang для некоторых целей, например для распространения двоичных файлов (при условии, что вы внимательно прочитали соответствующие лицензионные соглашения), или если у вас есть требования для определенных версий программного обеспечения, это должно быть возможно путем правильной установки CC
.Однако я отмечаю, что порт OpenSSL этого не делает, он выбирает исправление команд gcc
из сценария Configure
и использует FREEBSDCC
вместо этого.
Другой совет:
clang
фактически охвачены, но не FreeBSD специально, потому что все BSD здесь считаются эквивалентными. make test
после сборки OpenSSL python
и все в lib-dynload