AWK如何打印多个信息并将所有信息重定向到文本文件

时间:2013-04-22 00:18:04

标签: perl awk

需要帮助 我正在创建一个脚本来分析文件,并希望使用Awk在输出txt文件中打印2个信息 我能够打印信息没有人在我的屏幕上寻找但是如何使用相同的Awk打印另一个信息(例如我分析的文件行数)并将这两个信息输出到文件calle test.txt中 我尝试使用此代码和代码erreor:operator expected

#!/usr/bin/perl

if ($#ARGV ==-1)
{
    print "Saisissez un nom de fichier a nalyser \n";
}
else
{
    $fname = $ARGV[0];
    open(FILE, $fname) || die ("cant open \n");
}
while($ligne=<FILE>)
{
    chop ($ligne);
    my ($elemnt1, $ellement2, $element3) = split (/ /, $ligne_);
}
system("awk '{print \$2 > "test.txt"}' $fname");

1 个答案:

答案 0 :(得分:0)

尝试转义最后一行的引号,因此test.txt实际上是传递给system的字符串。

system("awk '{print \$2 > \"test.txt\"}' $fname");

编辑:将行数添加到同一文件

当执行NR规则时,Awk变量END最终保留输入中的行数。试试这个:

$outfile = '"test.txt"';
system("awk '{print \$2 > $outfile} END {print NR > $outfile}' $fname");

注意:

  1. 注意 $outfile名称中没有任何有趣的字符。
  2. 与shell不同,两次使用>都非常安全。 See here.