使用 Bash 对文本文件中的数字列表求和
本篇文章将介绍使用 Bash 脚本对文件中的数字列表求和的多种方法。 第一种方法涉及使用粘贴命令,我们将讨论两种情况:使用现有文件和使用标准输入读取文件。
最后,我们将讨论用于获取总和的 cut
和 awk
命令。
使用 Bash 对文本文件中的数字列表求和
下面描述的方法将假设我们有一个标题为 numbers.txt 的输入文件。
numbers.txt 文件:
1
2
3
4
5
6
7
8
9
10
使用现有文件
如果我们将所有数字存储在一个简单的文本文件中,每个数字单独一行,那么我们可以在 Bash 中调用以下命令并获取总和。
命令:
paste -sd+ numbers.txt | bc
输出:
55
使用标准输入(标准输入)
以下命令可以从文件中读取并获取数字的总和。
命令:
cat numbers.txt | paste -sd+ | bc
输出:
55
在这种情况下,我们使用命令 cat numbers.txt 从文件中读取。 此命令可以替换为任何其他返回数字列表的命令。
应该注意的是,虽然 paste 有一个 POSIX 定义的规范,但并不是每个实现都是相同的。 需要在 Mac OS 中使用以下命令才能获得相同的输出。
命令:
<cmd> | paste -sd+ - | bc
使用 cut 命令
假设我们有一个包含多列的文本文件,我们想要获得特定列的总和。 我们可以使用 cut 命令来实现这一点。
假设我们有一个 numbers.txt 文件,定义如下:
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
我们可以使用下面的命令分别总结每一列。
命令:
cat numbers.txt | cut -d ' ' -f 2 | paste -sd+ | bc -l
-f
之后的参数表示要求和的列号。 还应注意,在这种情况下,列号的计数从 1 而不是 0 开始。
当我们为 -f
标志添加 passed 2 时,我们将获得第二列的总和。
输出:
10
使用 awk 命令
以其作者命名的 awk 命令比我们以前的方法更适合这项任务。 测量时,awk 的性能比我们以前的方法好得多。
命令:
awk '{s+=$1} END {print s}' numbers.txt
输出:
55
您可以将 numbers.txt 替换为包含您的号码的文件的名称。 这也使我们能够绕过通过 cat 读取文件,这对卓越的性能负有部分责任。
相关文章
在 Bash 中传递所有参数
发布时间:2023/06/11 浏览次数:197 分类:操作系统
-
在 Bash 脚本中,我们主要使用语法 $1 $2 $3 ... $N 在函数中传递变量。此外,我们将看到必要的示例和解释,以使主题更容易理解。在 Bash 中传递所有参数
在 Bash 中解析 XML
发布时间:2023/06/11 浏览次数:109 分类:操作系统
-
本文将展示我们如何通过 Bash 解析 XML。我们将在这里讨论两个库。 我们的第一个库是 xmllint,第二个库称为 XMLStarlet。在 Bash 中使用 xmllint 解析 XML
Bash 脚本中的 Echo Tab 字符
发布时间:2023/06/11 浏览次数:198 分类:操作系统
-
本文演示了如何回显特殊字符(例如制表符),否则这些字符会在 Bash 脚本中转换为单个空格字符。 这扩展到 Bash 以外的 shell(例如 zsh)。
在 Bash 中回显到 stderr
发布时间:2023/06/11 浏览次数:102 分类:操作系统
-
本文将了解 stderr 及其功能。 此外,我们将查看一些示例,这些示例将使该主题更容易理解。在 Bash 中回显到 stderr 命令 stderr 主要用于在执行任何命令期间保持错误的重新编码。
在 Bash 中连接多个文件
发布时间:2023/06/10 浏览次数:170 分类:操作系统
-
有时出于各种目的,我们需要将多个文件连接成一个文件。 在 Bash 脚本中,很容易完成这项任务。在 Bash 中连接多个文件
在 Bash 中打开 Emacs
发布时间:2023/06/10 浏览次数:50 分类:操作系统
-
本文将展示我们如何在 Bash 中打开 Emacs。 我们还将讨论如何安装 Emacs 文本编辑器。在您的系统中安装 EMACS 假设您的系统中没有 Emacs。
在 Bash 中清除终端屏幕
发布时间:2023/06/10 浏览次数:101 分类:操作系统
-
有多种方法可以在 bash 脚本中清除终端。 本文将讨论 3 种清除终端的方法。使用 tput reset 清除终端屏幕 第一种方法使用关键字 tput reset 来清除屏幕。
在 Bash 中使用双管道和单管道
发布时间:2023/06/10 浏览次数:122 分类:操作系统
-
在本文中,我们将了解如何使用双管道(也称为 OR)和 Bash 脚本中的管道。 此外,我们将看到必要的示例和解释,以使主题更容易理解。在Bash中使用双管道 ||
在 Bash 中跳出循环
发布时间:2023/06/10 浏览次数:163 分类:操作系统
-
我们将停止三个最常用的循环:while、for 和 until。 让我们一一开始。跳出 Bash 中的 while 循环;跳出 Bash 中的 until 循环