从文件中读取 - awk

时间:2011-12-29 12:37:57

标签: awk

我想阅读像这样的文件

1.23213213
0.12321321
-1.12321321
0.23232322

到变量或数组中以在主{}代码中的某处使用它。 但如果此文件存在,我想使用它。如何检查它是否已经存在,如果不存在,那么不要使用该变量或数组?

1 个答案:

答案 0 :(得分:2)

我完全不了解你想要达到的目标,但也许这样的事情对你有用:

它逐行处理文件并将每个文件保存在一个数组中,键是行号,以便您保持顺序。在END部分中,检查处理了多少行,并获取文件是否包含内容。

awk '{ line[ FNR ] = $0 } END { if ( FNR > 0 ) { print "File" } else { print "NO file" } }' infile

编辑发表评论:

但在awk中,您可以从命令行处理许多文件。

BEGIN {
    ...
}

## Processing of first file in command line.
FNR == NR {
    a[ FNR ] = $0
    next
}

## Processing of second file in command line
FNR < NR {
    ## Check if array 'a' has the values you want and use them
    ## 'for(...)variable += a[i]' or whatever.
}

运行脚本如:

awk -f script.awk first_file.txt second_file.txt

但如果first_file.txt不存在,awk会抱怨错误。