AWK:如何在Bash中将列式文件读取到AWK脚本?

时间:2010-04-22 03:31:59

标签: bash unix awk

$ 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 个答案:

答案 0 :(得分:2)

filename命令的末尾删除awk

更改

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

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

第一个告诉awk从名为read的文件中获取输入,其中第二个文件告诉awkstandard input获取输入。

您运行脚本的方式:./read.sh <data
您通过标准输入提供输入。

或者,如果您始终希望脚本从名为data的文件中读取输入,则可以执行以下操作:

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

并将脚本运行为:./read.sh

答案 1 :(得分:1)

另外,你的she-bang线是乱码;它应该是#!/bin/bash。但这应该起作用:

#!/usr/bin/awk -f

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