2011-08-18 105 views
0

我正在尝试编写sed脚本来将LaTeX编码表转换为制表符分隔表。我怎样才能让sed删除``后跟任何东西?

为此,我需要将&转换为\t并删除之前有\的任何内容。

这是我到目前为止有:

s/&/\t/g 
s/\*/" "/g 

第一行按预期工作。在第二行中,我尝试用空格替换\后面的任何内容,但不会改变其中包含\的行。

任何建议表示赞赏。另外,你能简单解释一下建议的脚本“说”什么吗?我是sed的新手,这对学习过程非常有帮助!

感谢

回答

2

假设你正在运行此作为sed脚本,并在命令行中没有直接:

s/\\.*/ /g 

说明:

\\ - 双反斜线匹配一个反斜杠(单个\被解释为“逃避以下字符”,后跟.*.) - 匹配任何单个字符,* - 任意多次S)。

+0

完美! (并感谢解释) – KennyPeanuts

1

您需要转义反斜杠,因为它是一个特殊字符。
如果您想表示您需要使用“任何字符”。 (一期)

第二表达应该是:

s/\\.//g 

我希望我理解你的意图,你想,如果你想删除所有字符反斜杠之后剥离的字符, 在反斜杠后添加一个星号(*) 。