免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6163 | 回复: 9

svn权限配置文件修改格式 [复制链接]

论坛徽章:
0
发表于 2008-08-19 13:44 |显示全部楼层
有一个svn的配置文件,有几万行格式如下:
[/]
* = r
rahulsub = rw
preacc = r
webeeh = rw

[test123:/]
abc = rw

[TRIAutoSite:/]
@autopage_dev_grp = rw

[adi:/branches/partner/achievo]
* =
@g_clients = r
@achievo_grp = rw

[adi:/branches/partner/adea]
* =
@g_clients = r
@adea_grp = rw
.............


我想变成下面的格式,
[/];* = r;rahulsub = rw;preacc = r;webeeh = rw
[test123:/];abc = rw
[TRIAutoSite:/];@autopage_dev_grp = rw
[adi:/branches/partner/achievo];* =;@g_clients = r;@achievo_grp = rw
[adi:/branches/partner/adea];* =;@g_clients = r;@adea_grp = rw
.............

请问如何用sed或awk实现

[ 本帖最后由 sanyork 于 2008-8-19 13:47 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2008-08-19 13:56 |显示全部楼层
tr 命令就可以,你非要用 sed 和 awk?
晕哦。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2008-08-19 14:01 |显示全部楼层
我用 Perl 写一个吧。

perl -l073 -pne '' config.ini

论坛徽章:
0
发表于 2008-08-19 14:04 |显示全部楼层
也想用tr,但是一直不成功,后来发现文件格式是dos的,dos2unix后好了,谢谢了FLW大哥。
grep -v ^$ acl.txt | tr '\n' ';' | sed 's/\;\[/\n\[/g'

[ 本帖最后由 sanyork 于 2008-8-19 14:08 编辑 ]

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
发表于 2008-08-19 14:08 |显示全部楼层
用awk也可以
awk -v RS='' -v OFS=' '  '$1=$1' urfile

论坛徽章:
0
发表于 2008-08-19 14:19 |显示全部楼层
原帖由 waker 于 2008-8-19 14:08 发表
用awk也可以
awk -v RS='' -v OFS=' '  '$1=$1' urfile


谢谢waker老大,请教一下, '$1=$1'是啥意思?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2008-08-19 14:22 |显示全部楼层
原帖由 sanyork 于 2008-8-19 14:19 发表


谢谢waker老大,请教一下, '$1=$1'是啥意思?

就是啥也不做的意思。
会不会是因为 awk 比较傻,
没法像 Perl 的 -e '' 一样表达啥也不做?

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
发表于 2008-08-19 14:33 |显示全部楼层
回复 #7 flw 的帖子
如果啥也不作,\n就变不成空格了,是perl -e''太智能了吧?

回复 #6 sanyork 的帖子
$1=$1引起awk拆分域,域分割也会变成空格

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2008-08-19 14:44 |显示全部楼层
原帖由 waker 于 2008-8-19 14:33 发表
回复 #7 flw 的帖子
如果啥也不作,\n就变不成空格了,是perl -e''太智能了吧?

回复 #6 sanyork 的帖子
$1=$1引起awk拆分域,域分割也会变成空格

没明白你的意思。
不过楼主好像又变需求了?

论坛徽章:
0
发表于 2008-08-19 14:58 |显示全部楼层
原帖由 sanyork 于 2008-8-19 14:19 发表


谢谢waker老大,请教一下, '$1=$1'是啥意思?

在awk中如果域内容发生变化,输出$0的时候,awk会自动用各个域的内容以OFS来分割组成新的$0输出
$1=$1的意义就在于强制让awk 认为域发生了变化,从而使用OFS来分割各个域字段输出
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP