我有一个包含摩尔斯电码的文本文件。我必须删除所有莫尔斯代码,但不能删除每个句子末尾的句号或“Edgar-Johns”中的连字符。文本文件如下:
A test to see if the morse code can be removed from a file. .--- -. ..
This is a test --. -.- .-- .. -.. --- .- .. of sorts and so on. Let's see if the
code snippets can be found.
Also can they be .- . -.- removed and yet leave the periods at the end of sentences alone. ---- -. There are also hyphenated words like the
following: Edgar-Johns. -.
我可以使用sed 's/[.-]//g'
取出所有的点和短划线,但这也会消除句点和连字符。
答案 0 :(得分:1)
在匹配的点(或破折号)之前只需要一个空格,一次匹配一行中的所有点,破折号和空格,并用空格替换而不是空格:
sed 's/ [ .-]*/ /g'
运行示例文本,上面的命令会产生以下输出:
测试是否可以从文件中删除摩尔斯电码。这是一个 各种测试等。让我们看看是否可以找到代码片段。 也可以将它们删除,然后将句点留在句号的末尾 单独的句子。还有如下连字符: 埃德加-约翰。
答案 1 :(得分:-1)
我不熟悉正则表达式,因此我无法告诉您如何输入正确的表达式,但摩尔斯电码完全由点和短划线组成。"字"空间分隔,对吗?如果是这种情况,你可以使用模式"空格(任意数量的点和破折号,没有字母)空格"只删除莫尔斯码位。