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

How to decompress x.tar.xz format files under Linux

Publish Date:2025/04/08 Views:186 Category:OPERATING SYSTEM

A lot of software found today is in the tar.xz format, which is a lossless data compression file format that uses the LZMA compression algorithm. Like gzip and bzip2, it supports multiple file compression, but the convention is not to compr

Summary of vim common commands

Publish Date:2025/04/08 Views:115 Category:OPERATING SYSTEM

In Linux, the best editor should be vim. However, the complex commands behind vim's powerful functions also make us daunted. Of course, these commands do not need to be memorized by rote. As long as you practice using vim more, you can reme

Detailed explanation of command return value $? in Linux

Publish Date:2025/04/08 Views:58 Category:OPERATING SYSTEM

? is a special variable. This variable represents the return value of the previous command. That is to say, when we run certain commands, these commands will return a code after running. Generally, if the command is successfully run, the re

Common judgment formulas for Linux script shell

Publish Date:2025/04/08 Views:159 Category:OPERATING SYSTEM

In shell script programming, predicates are often used. There are two ways to use predicates, one is to use test, and the other is to use []. Let's take a look at how to use these two methods through two simple examples. Example 1 # test –

How to use the Linux file remote copy command scp

Publish Date:2025/04/08 Views:151 Category:OPERATING SYSTEM

Scp copies files between two hosts over the network, and the data is encrypted during transmission. Its underlying layer uses ssh for data transmission. And it has the same authentication mechanism and the same security level as ssh. When u

Scan to Read All Tech Tutorials

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

Recommended

Tags

Scan the Code
Easier Access Tutorial