0

我正在使用 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

一些化学站点允许在 URL 中使用 SMILES 进行访问。如您所见(在原子[Fe]6和之后[N]57)SMILES 可能包含百分号%

我需要将%符号转换为它的 URL 转义码%25。我在 Windows 7 中使用 GnuWin32 sed 版本 4.1.5.4013。我有这个 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 字符串转换为包含以符号 开头的 URL 转义码%

也愿意使用 awk 或 gawk。

预先感谢您的回答。

4

1 回答 1

2

Windows 命令外壳的语法:

sed "s/%/25%/g" file

Windows 命令外壳(“批处理”)脚本的语法:

@ECHO OFF &SETLOCAL
sed "s/%%/25%%/g" file
于 2013-08-12T19:21:17.310 回答