如何让sed删除`\`后跟任何东西?

时间:2011-08-18 18:25:48

标签: sed

我正在尝试编写一个sed脚本,将LaTeX编码表转换为制表符分隔表。

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

这是我到目前为止所做的:

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

第一行按预期工作。在第二行中,我尝试将\替换为空格,但不会更改其中包含\的行。

任何建议都表示赞赏。另外,您能否简要解释一下建议脚本“说”的内容?我是sed的新手,这对学习过程非常有帮助!

由于

2 个答案:

答案 0 :(得分:2)

假设您将其作为sed脚本运行,而不是直接在命令行上运行:

s/\\.*/ /g

说明:

\\ - 匹配文字反斜杠的双反斜杠(单个\被解释为“转义后续字符”,后跟.*. - 匹配任何单个字符* - 任意多次)。

答案 1 :(得分:1)

你需要逃避反斜杠,因为它是一个特殊字符 如果你想表示你需要使用的“任何角色”。 (一段时间)

第二个表达式应为:

s/\\.//g

我希望我理解你的意图,你想在反斜杠之后剥掉角色, 如果要在反斜杠后添加星号(*)删除行中的所有字符 在此之后。