跳过文件的最后一行perl
问题描述:
我正在尝试使用基于dir列表的perl生成SQL查询。跳过文件的最后一行perl
DATA
file_1.csv
file_2.csv
file_3.csv
CODE
$count = 1;
$files = qr/^.*?$/;
print "select id,Network_Location from data where Network_Location like\n";
while (<>)
{
if ($_ =~ $files) {
print "'%".$_."%' OR Network_Location like"."\n";
}
$count++;
}
我的回复sults
选择ID,从Network_Location数据,其中Network_Location像
'%file_1.csv
%' OR
'%file_2.csv
%' OR
'%file_3.csv%' OR
期望的结果
选择ID,从Network_Location数据,其中Network_Location像
'%file_1.csv%' 或
Network_Location LIKE '%file_2.csv%' 或
Network_Location LIKE '%file_3.csv%'
首先,我的 “%'” 越来越由于某种原因撞倒了一条线。我也不想在文件最后一行的末尾打印'OR'。我解析的目录可能包含数百个文件。
任何帮助?我猜它与我的'$ count'变量有关,但我不能把它放在手指上。至于“%”“被连续击倒,我不知道。
答
$files = qr/^.*?$/;
my @matches;
while (<>)
{
chomp; # remove end of line characters
if ($_ =~ $files) {
push @matches, $_; # store match in @matches array
}
}
if(@matches) {
print
"select id, Network_Location from data where\n",
join(" OR\n", map { "Network_Location like '%$_%'" } @matches),
"\n";
}
撞下来的一行:你需要修剪回车掉'$ _'用'chomp' – sebnukem 2014-11-21 22:26:09