Чтение из файла - awk - PullRequest
       4

Чтение из файла - awk

0 голосов
/ 29 декабря 2011

Я хотел бы прочитать файл, подобный этому

1.23213213
0.12321321
-1.12321321
0.23232322

, в переменную или массив, чтобы использовать его где-нибудь в основном коде {}.Но я хотел бы использовать его, если этот файл существует.Как я могу проверить, существует ли он уже или нет, и если нет, то не использовать эту переменную или массив?

1 Ответ

2 голосов
/ 29 декабря 2011

Я не совсем понимаю, чего вы хотите достичь, но, возможно, что-то вроде этого может быть полезно для вас:

Он обрабатывает файл построчно и сохраняет каждый в массиве, ключномер строки, чтобы вы сохраняли порядок.В разделе 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 выдаст сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...