迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

使用 Bash 对文本文件中的数字列表求和

作者:迹忆客 最近更新:2023/06/10 浏览次数:

本篇文章将介绍使用 Bash 脚本对文件中的数字列表求和的多种方法。 第一种方法涉及使用粘贴命令,我们将讨论两种情况:使用现有文件和使用标准输入读取文件。

最后,我们将讨论用于获取总和的 cutawk 命令。


使用 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 中传递所有参数

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 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 循环

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便