Home  >  Article  >  System Tutorial  >  Linux command line trick: detailed explanation of Cut command to process text easily!

Linux command line trick: detailed explanation of Cut command to process text easily!

王林
王林forward
2024-02-13 20:00:201003browse

Linux command line trick: detailed explanation of Cut command to process text easily!

In the Linux command line, it is often necessary to intercept and split text content. The Cut command is one of the very practical tools. It can extract data from lines, characters, and fields of text and output the results to the standard output device. In today's tutorial, we will introduce the use of the Cut command in detail through some examples.

cut command options

Cut basic syntax:

cut OPTION... [FILE]...

Options:

  • -f: Specify which field to extract. The cut command uses "TAB" as the default field separator.
  • -d: "TAB" is the default delimiter, use this option to change to other delimiters.
  • –complement : This option is used to exclude the specified fields.
  • –output-delimiter: Change the delimiter of output content.

How to split

The most commonly used option for cut is the combination of -d and -f. It basically extracts content based on specific delimiters and listed fields.

The code below uses only delimiters: prints the first field of each line in the /etc/passwd file.

[root@localhost ~]# cut -d ':' -f 1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
…

The following code extracts the first and sixth fields from the /etc/passwd file:

[root@localhost ~]# grep '/bin/bash' /etc/passwd| cut -d ':' -f 1,6
root:/root
bob:/home/bob
user01:/home/user01

To display a range of fields, specify the start field and end field separated by -, as follows:

[root@localhost ~]# grep '/bin/bash' /etc/passwd|cut -d ':' -f 1-4,6,7
root:x:0:0:/root:/bin/bash
bob:x:1000:1001:/home/bob:/bin/bash
user01:x:1001:1002:/home/user01:/bin/bash

Exclude specified fields

In the following code, print all fields except the second field in the /etc/passwd file:

[root@localhost ~]# grep '/bin/bash' /etc/passwd|cut -d ':' --complement -f 2
root:0:0:root:/root:/bin/bash
bob:1000:1001::/home/bob:/bin/bash
user01:1001:1002::/home/user01:/bin/bash

How to specify a delimiter for output content

To specify the output delimiter, use the --output-delimiter option. The input delimiter is specified by the -d option, and by default the output delimiter is the same as the input delimiter.
Let’s first take a look at what it looks like without using the –output-delimiter option:

[root@localhost ~]# cut -d ':' -f1,7 /etc/passwd|sort
adm:/sbin/nologin
avahi:/sbin/nologin
bin:/sbin/nologin
bob:/bin/bash
chrony:/sbin/nologin
daemon:/sbin/nologin
dbus:/sbin/nologin
ftp:/sbin/nologin
games:/sbin/nologin
grafana:/sbin/nologin
halt:/sbin/halt
lp:/sbin/nologin
mail:/sbin/nologin
nfsnobody:/sbin/nologin
nobody:/sbin/nologin
ntp:/sbin/nologin
operator:/sbin/nologin
…

Now use the --output-delimiter option, and the output delimiter is separated by ' ' spaces. Take a look at what it looks like:

[root@localhost ~]# cut -d ':' -f1,7 --output-delimiter=' ' /etc/passwd|sort
adm /sbin/nologin
avahi /sbin/nologin
bin /sbin/nologin
bob /bin/bash
chrony /sbin/nologin
daemon /sbin/nologin
dbus /sbin/nologin
ftp /sbin/nologin
games /sbin/nologin
grafana /sbin/nologin
halt /sbin/halt
lp /sbin/nologin
mail /sbin/nologin
nfsnobody /sbin/nologin
nobody /sbin/nologin
ntp /sbin/nologin
operator /sbin/nologin

In short, the Cut command is a very important command in Linux and can easily process text files. Through the introduction of this article, I believe that everyone has mastered the basic usage and common skills of the Cut command, and can flexibly apply it to various situations. I hope everyone can deepen their understanding of the Cut command and improve work efficiency.

The above is the detailed content of Linux command line trick: detailed explanation of Cut command to process text easily!. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:lxlinux.net. If there is any infringement, please contact admin@php.cn delete