我有这个脚本:
svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2"xyz.com"">"}' | sort -u > authors-test.txt
它从SVN repo收集作者姓名并将其更改为此格式。
himanshu.khanna = himanshu.khanna (himanshu.khanna@xyz.com)
我想在.
=
)
这就是我想要的结果:
himanshu.khanna = himanshu khanna (himanshu.khanna@xyz.com)
如果有人帮助我修改此脚本或提供可提供所需结果的不同脚本,我将非常感激。
答案 0 :(得分:1)
使用Gmail.Users.Messages.remove(userId, id)
将sub()
替换为空格。您需要将.
复制到另一个变量中,因为您不想在所有使用它的地方替换它。
您还需要转义$2
,因为它是正则表达式中的特殊字符。
.
答案 1 :(得分:0)
使用sed进行分组:
echo -e "himanshu.khanna = himanshu.khanna (himanshu.khanna@xyz.com)" | sed 's/\(^.*= \)\(.*\)\(\.\)\(.* \)\(.*$\)/\1\2 \4\5/g'
结果:
himanshu.khanna = himanshu khanna (himanshu.khanna@xyz.com)
比任何awk解决方案更短更清洁。
答案 2 :(得分:0)
以下内容基本上与@ AGuevara的建议相同,但(a)添加OP指定的/^r/
;在某些" *"
中表示强健,以及(c)显示如何避免所有反斜杠逃逸。
需要注意的是,扩展正则表达式的必需标志不是通用的:我在这里使用-E但是GNU使用-r:
sed -E -e '/^r/ s/^ *([^ ]*) *= *(.*)[.](.*)$/\1 = \2 \3/'