这是一个读取文件的shell脚本。
#!/bin/sh
procDate=$1
echo "Date $procDate"
file=`cat filename_$procDate.txt`
echo "$file"
我想将其转换为Perl并使用管道split
的{{1}}运算符作为分隔符。
答案 0 :(得分:0)
从你的问题中可以清楚地看出,一旦你将它们分开,你想用这些字段做什么
您自己的shell脚本使用cat
将文件的全部内容复制到$file
,但这不太可能是您需要做的事情
非常通用的Perl程序看起来像这样
use strict;
use warnings 'all';
my ($procDate) = @ARGV;
print "Date $procDate\n";
open my $fh, '<', "filename_$procDate.txt" or die $!;
while ( <$fh> ) {
chomp;
my @fields = split /\|/;
# do something with @fields, for instance
print "@fields\n";
}
该代码拆分管道|
个字符的每一行,将子串列表放在@fields
中,然后用空格分隔打印。但我猜不出你还想做什么?
答案 1 :(得分:-1)
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
open(FILE, "<filename_$procDate.txt") or die "Couldn't open file filename_$procDate.txt, $!";
while ( my $line = <FILE> ) {
print "Line content is $line\n";
my @line_content = split(/\|/, $line);
print Dumper (\@line_content);
}
close (FILE);