我有很多Perl脚本,需要将它们更新到所需的一致版本,并且当前具有各种版本和标志。所有这些语句都位于脚本的第一行。我在这里没有太多运气,显然是想使用sed,但是还有什么更好的选择吗?
需要编辑的示例行
#!/opt/local/bin/perl5
我尝试了如下的bash脚本,但是它对我不起作用。
#!/bin/bash
echo "Changing Perl headers in the following..."
for file in $(ls $1*.pl)
do
echo $file
sed 's/#!\/opt\/local/bin\/perl5/#![PERL5]/' $file > /dev/null
# Perl Version: PERL5
done
有sed经验的人提供的任何帮助都将非常棒!谢谢!
最佳答案
使用Perl修复您的Perl脚本。您可以对正则表达式使用花括号来避免leaning toothpick syndrome。
perl -i -pe 's{^#!/opt/local/bin/perl5}{#!/some/new/path}' *.pl
-i
和-p
用于就地编辑文件,有点像sed。有关详细信息,请参见perlrun。