使用 sed 在 yaml 文件的一组选定行中的每个大写字母前添加 space
Adding a space before each capital letter in a selected set of lines in a yaml file using sed
我想为 shell 脚本编写正则表达式。它用于仅匹配 yml 文件中的此类行。 (带有标签 summary 的行:Example Summary)
summary: GetMembersSavedSearchesByMemberId
所以我想做的是在每个大写字母前添加一个space并像这样输出
summary: Get Members Saved Searches By Member Id
我试过这个正则表达式
matchregex="summary[:][[:space:]].\([A-Z]\)"
replacement="summary: ."
sed -e "s/${matchregex}/${replacement}/g"
它不起作用。正确的写法是什么?
请您尝试以下操作:
sed -E '/^summary:/ s/([a-z])([A-Z])/ /g'
结果:
summary: Get Members Saved Searches By Member Id
这可能对你有用 (GNU sed):
sed 's/\B[[:upper:]]/ &/g' file
全局插入一个space在后面的字符是大写的单词中。
我想为 shell 脚本编写正则表达式。它用于仅匹配 yml 文件中的此类行。 (带有标签 summary 的行:Example Summary)
summary: GetMembersSavedSearchesByMemberId
所以我想做的是在每个大写字母前添加一个space并像这样输出
summary: Get Members Saved Searches By Member Id
我试过这个正则表达式
matchregex="summary[:][[:space:]].\([A-Z]\)"
replacement="summary: ."
sed -e "s/${matchregex}/${replacement}/g"
它不起作用。正确的写法是什么?
请您尝试以下操作:
sed -E '/^summary:/ s/([a-z])([A-Z])/ /g'
结果:
summary: Get Members Saved Searches By Member Id
这可能对你有用 (GNU sed):
sed 's/\B[[:upper:]]/ &/g' file
全局插入一个space在后面的字符是大写的单词中。