Print a file after skipping first X lines in Bash
Suppose you have a file, a large file, and you want to display its contents. How would you do it?
You obviously don't want to print out the entire contents of the file, as that's not very practical. You might want to print some selective lines; perhaps you'd use a regular expression to parse the file and print only the matches.
This article will explain several methods.
Skipping lines using head and tail commands
The following example uses five of the most commonly used Bash commands to do this:
tail fileName.txt
head fileName.txt
tail -n fileName.txt # here n is an integer
head -n fileName.txt # here n is an integer
tail +n fileName.txt # prints all lines starting from
# the nth file
tail
The command prints the last ten lines of a file, while the head command prints the first ten lines of a file.
When you use the command with –n option tail
, it prints the last n lines. Conversely, when you use the command with –n option head
, it prints the first n lines.
It is important to note that n here is an integer, so when you execute the command, you must replace n with an integer.
The fifth method is a bit tricky. It ignores the first (n – 1) rows and prints all the rows after that.
Skip the first n lines using vim
You can also skip first n lines using Vim editor. Vim is a console-based text editor that allows you to create and change any text document efficiently.
To use Vim for the first time, you must install it. Do this with the following command:
$ sudo apt install vim
Now that Vim is installed, we get into the business part of our goal, which is to skip the first n lines using Vim.
We will do this by using an intermediate file. We will first copy the contents of the old file into the new file; then, we will delete the first n lines of the new file.
We will use input and output redirection to copy the contents of one file to another file. If you have taken an operating system course, you should have heard of the ppfdt table (process file descriptor table).
By default, the first descriptor points to stdin (or the keyboard), the second to stdout (or the monitor), and the third to stderror.
Consider the following script for further understanding.
cat 0<old_file.txt 1>new_file.txt # copies old file’s contents to new file
The above command reads the contents of the old file and copies it to the new file. Notice how we use descriptor 0 to read and descriptor 1 to write.
If you find this descriptor confusing, we have something different for you. The following command will also work:
cat <old_file.txt >new_file.txt # copies old file’s contents to new file
cp <old_file.txt >new_file.txt # copies old file’s contents to new file
请注意
In the second method above, we used the copy command (i.e., cp). It has two parameters: the path of the source file and the path of the destination file.
Now that we have copied the file, open the new file in Vim and use the following command:
vim new_file.txt
Now use Shift+Esc and type the following command in Vim:
:1,nd # here n is an integer number e.g., 2
The above command deletes the first n lines from new_file.txt. Here, d stands for delete.
Using sed to skip first n lines
Creating a new file and then deleting its contents can be cumbersome. Also, if the old file is large, it can consume a lot of extra memory as well.
So, let's look at a simpler way to achieve the same thing:
sed 1,nd old_file.txt # here n is an integer
It is important to note that sed
the command does not modify the old file. Instead, it simply displays the contents of the old file after deleting the first n lines.
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.
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 –
Shell script programming practice - specify a directory to delete files
Publish Date:2025/04/08 Views:98 Category:OPERATING SYSTEM
-
Usually, in Linux system we need to frequently delete some temporary files or junk files. If we delete them one by one manually, it will be quite troublesome. I have also been learning shell script programming recently, so I tried to write
Use of Linux command at - set time to execute command only once
Publish Date:2025/04/08 Views:158 Category:OPERATING SYSTEM
-
This article mainly involves a knowledge point, which is the atd service. Similar to this service is the crond service. The functions of these two services can be similar to the two functional functions of javascript. Those who have learned
Use of Linux command crontab - loop execution of set commands
Publish Date:2025/04/08 Views:170 Category:OPERATING SYSTEM
-
Compared with at , which executes a command only once, crontab, which we are going to talk about in this article, executes the set commands in a loop. Similarly, the use of crontab requires the support of the crond service. The service is s
Linux practice - regularly delete files under the directory
Publish Date:2025/04/08 Views:198 Category:OPERATING SYSTEM
-
Since we want to delete the files under the directory regularly, we need to use the Linux crontab command. And the content format of each work routine is also introduced in the format of each crontab work. Similarly, we need to use shell sc
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