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

标签 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)

最佳答案

删除 filenameawk 的末尾开始命令:

改变

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

关于bash - AWK:如何在 Bash 中将列式文件读取为 AWK 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2688064/

相关文章:

bash - 使用awk计算一行的平均值

linux - 每隔 x(毫秒)暂停一个 shell 脚本以减少立即的 CPU 使用率

unix - 如何从匹配文件 2 的文件 1 中提取内容并将它们按文件 2 的顺序排列

linux - AWK If/Else 条件问题

c++ - 如何使用 CMakeLists.txt 为我的可执行文件设置 bash 中的环境变量

linux - 如何以最快的速度复制文件?

linux - 包含条件和参数的表 ?在哪里?

linux - 使用 awk 找到或未找到显示匹配

linux - 每 n 行拆分批量文本文件

bash - 如何删除字符串bash shell中第n次出现的字符