Home  >  Article  >  System Tutorial  >  Linux command tool - Cut, makes data processing more efficient

Linux command tool - Cut, makes data processing more efficient

WBOY
WBOYforward
2024-02-09 21:00:231188browse

In Linux systems, data processing is a very common task. As an artifact in the Linux command line, the Cut command can help administrators quickly extract and process data through simple commands, greatly improving work efficiency. This article will introduce how to use the Cut command and help everyone understand it better through vivid example illustrations.

Linux command tool - Cut, makes data processing more efficient

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

Summarize

Although the Cut command seems simple, it actually has strong functionality and flexibility. Administrators can accurately locate the required data and process it by setting different delimiters and domain attributes. This article introduces the use of the Cut command in detail. I believe that readers have mastered the power of this artifact. The efficiency and ease of learning of the Cut command make us no longer afraid of the task of data processing.

The above is the detailed content of Linux command tool - Cut, makes data processing more efficient. 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