https://www.howtoforge.com/linux-seq-command
Sometimes, you come across a command line tool that offers limited
functionality on its own, but when used with other tools, you realize
its actual potential. Once such tool is seq, which
prints a sequence of numbers. In this tutorial, we will discuss the
basics of this command line utility using easy to understand examples.
But before jumping on to that, it's worth mentioning that all examples in this article have been tested on an Ubuntu 16.04 machine.
For example:
For example:
For example, the following command intends to use a comma (,) as a separator:
But before jumping on to that, it's worth mentioning that all examples in this article have been tested on an Ubuntu 16.04 machine.
Linux seq command
As already mentioned, the seq command lets you print a sequence of numbers. Following is its syntax:
seq [OPTION]... LAST
seq [OPTION]... FIRST LAST
seq [OPTION]... FIRST INCREMENT LAST
And here's how the tool's man page explains it:seq [OPTION]... FIRST LAST
seq [OPTION]... FIRST INCREMENT LAST
Print numbers from FIRST to LAST, in steps of INCREMENT. If FIRST or INCREMENT is omitted, it defaults to 1. That is, an omitted INCREMENT defaults to 1 even when LAST is smaller than FIRST. The sequence of numbers ends when the sum of the current number and INCREMENT would become greater than LAST. FIRST, INCREMENT, and LAST are interpreted as floating point values. INCREMENT is usually positive if FIRST is smaller than LAST, and INCREMENT is usually negative if FIRST is greater than LAST. FORMAT must be suitable for printing one argu? ment of type 'double'; it defaults to %.PRECf if FIRST, INCREMENT, and LAST are all fixed point decimal numbers with maximum precision PREC, and to %g otherwise.Following are some Q&A-styled examples that should give you a better idea on how the seq command works.
Q1. How seq command works?
Basic usage is very easy. All you have to do is to pass a number to seq, and the tool will producein output numbers from 1 to the input number.For example:
seq 8
Of course, you can also specify the number from which you want the output to begin with.For example:
seq 3 8
Movin on, you can also set the incremental difference, which is 1 by
default. For example, if you want seq to print from 1 to 9, but with a
difference of 2, then here's how you can do that:
seq 1 2 9
Q2. How to add a separator?
If you want, you can also have a separator to make the seq output look better. This feature is available through the -s command line option.For example, the following command intends to use a comma (,) as a separator:
seq -s, 1 9
Q3. How to specify output format?
The seq command allows you to use printf style floating-point FORMAT. This feature is accessible through the -f command line option. The tool's man page doesn't have much information on how to use this option, but the info page contains the required details. Here's what the info page says:`-f FORMAT' `--format=FORMAT' Print all numbers using FORMAT. FORMAT must contain exactly one of the `printf'-style floating point conversion specifications `%a', `%e', `%f', `%g', `%A', `%E', `%F', `%G'. The `%' may be followed by zero or more flags taken from the set `-+#0 '', then an optional width containing one or more digits, then an optional precision consisting of a `.' followed by zero or more digits. FORMAT may also contain any number of `%%' conversion specifications. All conversion specifications have the same meaning as with `printf'. The default format is derived from FIRST, STEP, and LAST. If these all use a fixed point decimal representation, the default format is `%.Pf', where P is the minimum precision that can represent the output numbers exactly. Otherwise, the default format is `%g'.For example, you can use this option in the following way:
seq -f "%02g" 6
Q4. How to use seq with other commands? (Use case 1)
Suppose you want to perform addition of some numbers, say from 111 to 121. Here's how you can do this using seq:
expr `seq -s " + " 111 121`
Here's the above command in action:Q5. How to use seq with other commands? (Use case 2)
Suppose you want to create a bunch of new files with names where only an integer value changes. For example, file1, file2, file3, and so on. Here's how you can do this using seq.
touch $(seq -f "file%g" 1 10)
No comments:
Post a Comment