linux - sed 删除 svn 访问控制列表中的用户

标签 linux svn sed

文件名:stackgroup.acl

[groups]
stackoverflow=linus,steve,bill,adrian
stackexchange=charlie,darwin,carol,kelly

我需要一个 sed 代码来删除用户,无论它是在行的开头还是结尾。

这是我到目前为止得到的:

sed 's/\(.*=*\)linus,\(.*\)/\1\2/g'
sed 's/\(.*=*\)steve,\(.*\)/\1\2/g'
sed 's/\(.*=*\),adrian\(.*\)/\1\2/g'

如您所见,中间的很好,但第一个和最后一个用户会留下一个额外的逗号。

我什至尝试使用正则表达式:

sed 's/\(.*=*\),\?linus,\?\(.*\)/\1\2/g'

sed 's/\(.*=*\),*linus,*\(.*\)/\1\2/g'

但它不起作用。

有人可以帮忙吗?

最佳答案

使用两个表达式,第二个表达式负责处理名称紧接在 = 之后的边缘情况

#!/bin/bash

user="linus"
sed "s/,\?$user//;s/=,/=/" stackgroup.acl

关于linux - sed 删除 svn 访问控制列表中的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9075244/

相关文章:

java - 开始使用基于计算机 (linux) 的蓝牙设备,使其可被周围的手机发现

svn - 我在哪里可以找到一个假的 svn 存储库?

bash - 重命名大量文件的扩展 Bash

linux - 强制 gcc 在 64 位平台上编译 32 位程序

html - 将单个文件夹中的一组 html 文件的 <title> 标记内的所有文本大写

ruby-on-rails - 在 RedHat linux 机器上安装 RubyOnRails

svn - 使用 xcopy 将 subversion 工作副本移动到新计算机是否安全?

svn - 让 TortoiseSVN 将文件视为未更改

python - 根据标签拆分文件 - grep、sed?

ubuntu - 无法在 EC2 Ubuntu 上安装 docker