我的测试文件具有“n”行数,并且每行之间有一个^ M,这反过来又使它成为一个大字符串。我正在使用的代码打开所述文件,并应解析出一个标题,然后解析出后续行,然后搜索目录路径和文件名。但由于文件刚刚结束了作为一个大的字符串不正确,当我在六,打开测试文件,我已经使用如何用perl中的新行替换^ M
:%s/^M/\r/g
工作
#!/usr/bin/perl
#use strict;
#use warnings;
open (DATA, "<file.txt") or die ("Unable to open file");
my $search_string = "Directory Path";
my $column_search = "Filename";
my $header = <DATA>;
my @header_titles = split /\t/, $header;
my $extract_col = 0;
my $col_search = 0;
for my $header_line (@header_titles) {
last if $header_line =~ m/$search_string/;
$extract_col++;
}
for my $header_line (@header_titles) {
last if $header_line =~m/$column_search/;
$col_search++;
}
print "Extracting column $extract_col $search_string\n";
while (my $row = <DATA>) {
last unless $row =~ /\S/;
chomp $row;
my @cells = split /\t/, $row;
$cells[74]=~s/:/\//g;
$cells[$extract_col]= $cells[74] . $cells[$col_search];
print "$cells[$extract_col] \n";
}
和删除^ M的,但如何我是否在这个perl程序中执行它?当我尝试一个测试程序并插入s\^M/\r/g
并且写入了另一个文件时,它就出现了很多中文字符。
喜欢'打开我的$ DATA ,“<”,$ filename“打开DATA”,<$ filename“'。 – flies