b****n 发帖数: 144 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: barron (barron), 信区: Programming
标 题: Perl问题求助
发信站: BBS 未名空间站 (Wed Sep 22 15:09:54 2010, 美东)
我用perl写了一个读取1.7M txt文件到string array,然后进行一些字符串替换,再将
string array存入一个新的txt文件的小程序,可是新建的新文件没有多多少内容,siz
e却变成了8M,而且每行末尾有些乱码,做了dos2unix以后,乱码消失,size不变。。。
请问这个可能是什么问题,怎样才能保持文件的size不变? 谢谢! |
d*******e 发帖数: 1649 | 2 you need show some codes at least...
siz
【在 b****n 的大作中提到】 : 【 以下文字转载自 Programming 讨论区 】 : 发信人: barron (barron), 信区: Programming : 标 题: Perl问题求助 : 发信站: BBS 未名空间站 (Wed Sep 22 15:09:54 2010, 美东) : 我用perl写了一个读取1.7M txt文件到string array,然后进行一些字符串替换,再将 : string array存入一个新的txt文件的小程序,可是新建的新文件没有多多少内容,siz : e却变成了8M,而且每行末尾有些乱码,做了dos2unix以后,乱码消失,size不变。。。 : 请问这个可能是什么问题,怎样才能保持文件的size不变? 谢谢!
|
b****n 发帖数: 144 | 3 基本上就是一些字符串的replace,然后在原文件中的一行前面再加一行
$file = './test.xml';
open (FILE, "<$file") or die $!;
@lines = ;
# real change in lines
@variable_array;
# find lines has >***< pattern
$line =~ m/\>(\w+)\;
$variable = $1.";";
push (@variable_array, $variable);
#remove "variable_" from the line
$lines[$line_number] =~ s/$orig/$repl/g;
# insert the variable array to the $lines[$var_first_line]
$variable_str;
foreach (@variable_array) {
$variable_str .= $_;
}
$variable_str = substr($variable_str, 0,-
【在 d*******e 的大作中提到】 : you need show some codes at least... : : siz
|
E*V 发帖数: 17544 | 4 I don't know perl
but `sed' could do this elegant ly
【在 b****n 的大作中提到】 : 基本上就是一些字符串的replace,然后在原文件中的一行前面再加一行 : $file = './test.xml'; : open (FILE, "<$file") or die $!; : @lines = ; : # real change in lines : @variable_array; : # find lines has >***< pattern : $line =~ m/\>(\w+)\; : $variable = $1.";"; : push (@variable_array, $variable);
|
j******y 发帖数: 700 | 5 perl -pi -e 's/OLD_STRING/NEW_STRING/g' file.txt |
c****f 发帖数: 1102 | 6 sed -i 's/OLD/NEW/g' file.txt |
m*********g 发帖数: 273 | 7 Is the text from windows or unix?
Look out for the new line character!!!
With so little information, I can not help much.
Also try to use strict every time you use Perl. Your Perl style can give
you a lot trouble if the program goes a little longer.
Personally, I don't like $_, @_. They make program so unreadable.
【在 b****n 的大作中提到】 : 基本上就是一些字符串的replace,然后在原文件中的一行前面再加一行 : $file = './test.xml'; : open (FILE, "<$file") or die $!; : @lines = ; : # real change in lines : @variable_array; : # find lines has >***< pattern : $line =~ m/\>(\w+)\; : $variable = $1.";"; : push (@variable_array, $variable);
|
B*********s 发帖数: 292 | 8 Use your perl script to process a 100byte file and check the result file. |