Freebsd下 批量修改dos格式文件为unix格式 并删除空行

本文介绍了一个使用PHP脚本批量将Windows文件格式转换为Unix格式,并去除文件中连续空白行的方法。该脚本支持指定目录及文件类型进行操作。
#!/usr/local/bin/php -q
<?php
/*
    用于批量修改windows下的文件格式为unix下的文件格式,
    同时把连续的空白行去掉
*/
if($argc>1)
{
    
array_shift($argv);
    
$dir = $argv[0];
    
$type = $argv[1];
    
if($argv[2])
    {
        
$ext = " -maxdepth $argv[2]";
    }
}
else
{
    
exit('no parames');
}
chdir($dir);
$command = sprintf('find . -type f -name "*.%s"',$type);
if($ext)
{
    
$command .= $ext;
}
//$command = 'find . -type f';
$str = shell_exec($command);
$arr = explode(" ",$str);
$command2 = "/usr/local/bin/dos2unix _FILE_";
$command3 = "/usr/bin/sed '/^$/d' _FILE_ > _FILE2_";
for($i=0;$i<count($arr);$i++)
{    
    
if(strlen($arr[$i])>3 )
    {
        
$cmd2 = str_replace("_FILE_",$arr[$i],$command2);
        
print $cmd2." ";
        
shell_exec($cmd2);
        
        
$filename2 = $arr[$i].'.bak';
        
$command33 = str_replace("_FILE_",$arr[$i],$command3);
        
$cmd3 = str_replace("_FILE2_",$filename2,$command33);
        
print $cmd3." ";
        
shell_exec($cmd3);
        
        
$cmd4 = "/bin/mv $filename2 $arr[$i]";
        
print $cmd4." ";
        
print " ---------------------------------------------------------- ";
        
shell_exec($cmd4);
        
        
unset($cmd2,$cmd3,$cmd4,$filename2);
    
    }
}
print "+ ====================================================================+ ";
print "parse file number: ".count($arr)." ";
?>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值