AWK: как прочитать файл по столбцам в AWK-скрипте в Bash? - PullRequest
3 голосов
/ 22 апреля 2010
$ cat read.sh 
#!bin/bash

// how can I read the columnwise data to awk-script?
awk '{sum+=$1} END {print sum}' read
$ cat data 
1
2
3
4
5
$ . ./read.sh <data
awk: cmd. line:1: fatal: cannot open file `read' for reading (No such file or directory)

Ответы [ 2 ]

2 голосов
/ 22 апреля 2010

Удалите filename из конца команды awk:

Изменение

awk '{sum+=$1} END {print sum}' read

до

awk '{sum+=$1} END {print sum}' 

Первый говорит awk получить входные данные из файла с именем read, а второй говорит awk для получения входных данных от standard input.

То, как вы запускаете скрипт: ./read.sh <data
Вы вводите вход через стандартный ввод.

В качестве альтернативы, если вы всегда хотите, чтобы скрипт считывал входные данные из файла с именем data, вы можете сделать:

awk '{sum+=$1} END {print sum}' data

и запустите скрипт как: ./read.sh

1 голос
/ 22 апреля 2010

Кроме того, ваша чертова линия искажена;это должно быть #!/bin/bash.Но это должно работать вместо:

#!/usr/bin/awk -f

{ sum += $1 }
END { print sum }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...