Mac OS X Unix使用正则表达式查找替换

时间:2017-01-17 13:45:26

标签: macos unix

这是我的第一个问题,如果之前已经回答过这么道歉。我搜索过但找不到我要找的东西。

我有大量从数据库导出的文本。对于某些属性内容,我需要找到一个空格的后跟大写字母的每个实例,然后用分号(;)替换该空格。

例如:

First one Second one Third one Fourth one

应该成为:

First one;Second one;Third one;Fourth one

使用Unix(Mac OS X)以下只返回整行:

echo "First one Second one Third one Fourth one" | grep ' [A-Z]'

我将如何实现我想要的结果?任何帮助或指针将非常感谢。 感谢。

1 个答案:

答案 0 :(得分:1)

使用sed执行此类任务:

$ echo "First one Second one Third one Fourth one" | sed -Ee 's/ ([A-Z])/;\1/g'
First one;Second one;Third one;Fourth one
    指定
  • -E选项以使用扩展正则表达式。
  • s/pattern/replace-string/g找到模式并用替换字符串 g 替换。
  • [A-Z]匹配大写字母。通过用(..)包围模式,稍后可以在replace-string中引用它。