这是我的第一个问题,如果之前已经回答过这么道歉。我搜索过但找不到我要找的东西。
我有大量从数据库导出的文本。对于某些属性内容,我需要找到一个空格的后跟大写字母的每个实例,然后用分号(;)替换该空格。
例如:
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]'
我将如何实现我想要的结果?任何帮助或指针将非常感谢。 感谢。
答案 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中引用它。