使用分隔符

时间:2016-11-25 23:08:40

标签: bash perl

在vim中手动编辑文件相当繁琐,如果可以的话,我想简化它:)

问题是,我希望有一个脚本来删除所选项目,如果它有一个分隔符也可以删除它。

它用" |"分开。或者","或不。

./ remove-text test.com

 test.com|test3.org|filename.co.uk|files.qwe|loop.zya|....
 test3.org,filename.co.uk,test.com,files.qwe,loop.zya,...
 test3.org,filename.co.uk,test.com##[mode;]
 filename.co.uk,files.qwe,loop.zya##["test.com"]
 test.com##[mode2;]

会变成:

 test3.org|filename.co.uk|files.qwe|loop.zya|....
 test3.org,filename.co.uk,files.qwe,loop.zya,...
 test3.org,filename.co.uk##[mode;]
 filename.co.uk,files.qwe,loop.zya##["test.com"]

请注意;试图避免需要制作备份/临时文件并直接编辑文件。

1 个答案:

答案 0 :(得分:-1)

请试试这个:

while(<DATA>)
{
    ($line .= $_)=~s/([\|\,\s]*)(?:test\.com|[a-z]+\-\[a-z]+)\b([\|\,\s]*)/$1$2/g;
}
print $line;

__DATA__
test.com|test3.org|filename.co.uk|files.qwe|loop.zya|....
test3.org,filename-co.uk,test.com,files.qwe,loop.zya,...
test3.org,filename.co.uk,test.com##[mode;]
filename.co.uk,files.qwe,loop-zya##["test.com"]
test.com##[mode2;]

明确使用use strictuse warnings