例如,在工作中,我们使用这种结构找出自上次更新以来在 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/