Я использую sed для создания URL-адресов с процентными кодами. Химические вещества могут быть представлены с использованием упрощенной системы линейного ввода молекулярного ввода (SMILES). См.: http://en.wikipedia.org/wiki/SMILES.
Вот код SMILES для химического кофактора железо-сера-молибден:
[O-]C(=O)CCC1(CC([O-])=O)O[Mo]23(OC1=O)[S]1[Fe]45S[Fe]67[S]8[Fe]9[S]6[Fe]6%10S[Fe]%11([S]24)[S]3[Fe]11S[Fe]8([S]96)[N]57%10%111
Некоторые химические сайты разрешают доступ, используя SMILES в URL-адресе. Как видите (после атомов [Fe]6
и [N]57
) SMILES может включать символ процента %
.
Мне нужно преобразовать символ %
в escape-код URL-адреса %25
. Я использую GnuWin32 sed версии 4.1.5.4013 в Windows 7. У меня есть этот sed-скрипт:
sed -e "s/\%/\%25/g" < C:\1.txt > C:\2.txt
Но он возвращает это сообщение об ошибке:
sed: -e expression #1, char 6: unterminated `s' command
Далее, когда я смотрю на скрипт в командном режиме, я вижу:
sed -e "s/\25/g" C:\bin\1.txt > C:\bin\2.txt
Так что очевидно, что символ %
убирается.
Как изменить сценарий sed, чтобы преобразовать строку SMILES и включить escape-коды URL, начинающиеся с символа %
.
Также я готов использовать awk или gawk.
Заранее спасибо за ответ.