例如,在工作中,我们使用这种结构找出自上次更新以来在 SVN 中更改的所有文件的名称,并对它们执行 svn add 命令:
svn st | grep '^\?' | perl -pe 's/^\s*\?// | xargs -L 1 svn add'
我想:“我希望我可以使用 Perl 单行脚本而不是 grep”。

是否可以这样做,如果可以,如何做?

P.S.: 我发现 Perl 中有一个 m// 操作符。我认为它应该用于 ARGV 变量(不知道它们在 Perl 中的名称 - 可能是 $_ 数组或只是 $1 之类的变量?)。

最佳答案

简单的:

svn st | perl -lne 'print if s/^\s*\?//' | xargs -L 1 svn add

或者在 Perl 中做所有事情:
perl -e '(chomp, s/^\s*\?//) && system "svn", "add", $_ for qx(svn st)'

关于regex - 使用 perl 代替 grep,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8657235/

10-13 07:36
查看更多