JIYIK CN >

Current Location:Home > Learning > OPERATING SYSTEM >

Sum a list of numbers in a text file using Bash

Author:JIYIK Last Updated:2025/03/21 Views:

This article will show you multiple ways to sum a list of numbers in a file using Bash scripts. The first method involves using the paste command, and we will discuss two cases: using an existing file and reading a file using standard input.

cutFinally, we'll discuss the and commands for obtaining sums awk.


Sum a list of numbers in a text file using Bash

The method described below will assume that we have an input file titled numbers.txt.

numbers.txt file:

1
2
3
4
5
6
7
8
9
10

Use existing file

If we store all the numbers in a simple text file with each number on a separate line, then we can call the following command in Bash and get the sum.

Order:

paste -sd+ numbers.txt | bc

Output:

55

Using standard input (stdin)

The following command can read from a file and get the sum of the numbers.

Order:

cat numbers.txt | paste -sd+ | bc

Output:

55

In this case, we use the command cat numbers.txt to read from the file. This command can be replaced with any other command that returns a list of numbers.

It should be noted that while paste has a POSIX-defined specification, not every implementation is the same. The following command would need to be used on Mac OS to get the same output.

Order:

<cmd> | paste -sd+ - | bc

Using the cut command

Suppose we have a text file with multiple columns and we want to get the sum of a particular column. We can use the cut command to achieve this.

Suppose we have a numbers.txt file with the following definition:

1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1

We can summarize each column individually using the following command.

Order:

cat numbers.txt | cut -d ' ' -f 2 | paste -sd+ | bc -l

-fThe following parameter indicates the column number to be summed. Note also that in this case, the column numbers are counted starting at 1 instead of 0.

When we -fadd the passed 2 flag, we get the sum of the second column.

Output:

10

Using awk command

The awk command, named after its author, is much better suited to this task than our previous approach. When measured, awk performs much better than our previous approach.

Order:

awk '{s+=$1} END {print s}' numbers.txt

Output:

55

You can replace numbers.txt with the name of the file containing your numbers. This also allows us to bypass reading the file through cat, which is partly responsible for the excellent performance.

For reprinting, please send an email to 1244347461@qq.com for approval. After obtaining the author's consent, kindly include the source as a link.

Article URL:

Related Articles

Check if input parameter exists in Bash

Publish Date:2025/03/21 Views:191 Category:OPERATING SYSTEM

When we create a Bash script, we may want to use parameters in our script to run successfully. Therefore, we need to create a script to check the number of input parameters used by the user in the script. All of this prevents unexpected beh

Getting optional input arguments in Bash

Publish Date:2025/03/21 Views:180 Category:OPERATING SYSTEM

Sometimes we need to create a dynamic function which can be executed in both without passing any arguments or without passing any arguments. For this we need to set some default values ​​for those arguments so that if the arguments are

Using Double and Single Pipes in Bash

Publish Date:2025/03/21 Views:136 Category:OPERATING SYSTEM

In Bash, the double pipe || is also known as the OR operator in other programming languages. On the other hand, the single pipe | is known as a pipeline. In this article, we will see how to use double pipe (also known as OR) and pipelines i

Breaking out of a loop in Bash

Publish Date:2025/03/21 Views:131 Category:OPERATING SYSTEM

Using loops is a common task in any programming or scripting language. While using a loop, sometimes we need to stop it under a predefined condition. Like other programming and scripting languages, Bash uses the keyword break to stop any lo

Bash configuration files in macOS

Publish Date:2025/03/21 Views:185 Category:OPERATING SYSTEM

In this article, we will discuss how to create, delete, and edit bash profiles in macOS. Create .bash_profile To create .bash_profile, open a terminal and move to your home directory using the following command. cd ~/ Now you can create usi

eval command in bash script

Publish Date:2025/03/21 Views:87 Category:OPERATING SYSTEM

This article is about using strings as commands in Bash scripts. For this purpose, the eval command is used. Eval Command in Bash Scripts In some Bash scripts, you have to create a string using variables or input values ​​(for example)

Exit Bash Script

Publish Date:2025/03/21 Views:99 Category:OPERATING SYSTEM

This article provides a brief introduction to Bash scripting and discusses exiting a Bash script when an error occurs. It further discusses the limitations and benefits of Bash scripting. What is Bash Scripting A computer script/program tel

timeout command in Bash

Publish Date:2025/03/21 Views:105 Category:OPERATING SYSTEM

This article is a simple guide to setting a timeout for a specific program using the timeout command from GNU's coreutils package in Bash. timeout command in Bash In many cases, such as fetching data from a server or running a function or p

Start a new terminal session in Bash

Publish Date:2025/03/21 Views:51 Category:OPERATING SYSTEM

In various situations when using Bash or another shell, you may need to run a script or program in a new terminal instance or in another tab in the same terminal. Opening a new terminal instance or tab from within Terminal is simple; we'll

Scan to Read All Tech Tutorials

Social Media
  • https://www.github.com/onmpw
  • qq:1244347461

Recommended

Tags

Scan the Code
Easier Access Tutorial