Table of Contents
Grep Introduction
How to use grep
Extended grep usage
grep regular expression metacharacters
Exercise:
Home Operation and Maintenance Linux Operation and Maintenance Detailed explanation of code cases about grep and regular expressions in Linux

Detailed explanation of code cases about grep and regular expressions in Linux

Jul 26, 2017 pm 04:03 PM
grep linux regular

Grep Introduction

Grep is a powerful text search tool that can use regular expressions to search text and print out matching lines. Usually there are three versions of grep: grep, egrep (equivalent to grep -E) and fgrep. egrep is extended grep, and fgrep is fast grep (fixed string to search text, does not support regular expression references but the query is extremely fast). grep is one of the three musketeers of Linux text processing.

How to use grep

How to use: grep [OPTIONS] PATTERN [FILE...]

grep [OPTIONS] [-e PATTERN | -f FILE] [FILE ...]

Common options:

--color=auto: Color the matched text and highlight it;

-i: Ignore the size of the characters Write

 -o: Display only matched strings

 -v: Display lines that cannot be matched by the pattern

 -E: Support the use of extended regular expressions

 -q: Silent mode, that is, no information is output

 -A #: Display the lines matched by the pattern and # lines after it

 -B #: Display the lines matched by the pattern Pattern-matched lines and their preceding # lines

 -C #: Display pattern-matched lines and their preceding and following # lines

 Note: Required when using grep matching Use double quotes (single quotes are strong quotes) to prevent the system from mistaking it for parameters or special commands and reporting an error.

Extended grep usage

Usage method: egrep [OPTIONS] PATTERN [FILE...]

grep -E [OPTIONS] ] PATTERN [FILE...]

 -i: Ignore the case of characters
 -o: Only display the matched string itself
 -v: Display not matched by the pattern Reached line
 -q: Silent mode, that is, no information is output
 -A #: Display the line matched by the pattern and the following # lines
 -B #: Display the line matched by the pattern and its following Previous # lines
-C #: Display the lines matched by the pattern and the # lines before and after
-G: Support basic regular expressions

grep regular expression metacharacters

'^': Anchor at the beginning of the line

'$': Anchor at the end of the line

'.': Match any character

'*': Match Zero or more previous characters

'\?': Match the preceding character 0 or 1 times;

'\+': Match the preceding character 1 or more times ;

 '\{m\}': Matches the character before it m times (\ is an escape character)

 '\{m,n\}': Matches the character before it At least m times, at most n times

 []': Matches a character within the specified range | '[^]'matches any single character outside the specified range

 '\<' Or '\b': anchor the beginning of the word, '\>' or '\b': anchor the end of the word (available \: match the complete word)

 \(\) ': Treat multiple characters as a whole

Back reference: Reference the characters matched by the pattern in the previous grouping brackets

Grouping The content matched by the pattern in brackets may be automatically recorded in internal variables by the regular expression engine:

\1: The pattern starts from the left, the first left bracket and the The content matched by the pattern between the matching right brackets

\2: The pattern starts from the left, and the pattern matches between the second left bracket and the matching right bracket. The content...

 Extended regular expressions are slightly different from regular expressions:

 []': still matches anything within the specified range A single character; but there are many special matching methods.

 [:digit:] matches any single digit

  [:lower:] matches any single lowercase letter     

   [:upper:] matches any A single uppercase letter

[:alpha:] matches any single letter

[:alnum:] matches any single letter or number

[:punct:] matches any single symbol

[:space:] Matches a single space

Some places cancel the use of escape characters:

'?': Matches the preceding character 0 or 1 times ;

'+': Matches the preceding character 1 or more times;

'{m}': Matches the preceding character m times (\ is an escape character)

 '{m,n}': Match the preceding character at least m times and at most n times

 (): Bundle one or more characters together and process them as a whole, and vice versa References are used as usual.

 |': or (Note: 'C|cat' is C and cat, '(C|c)at is Cat and cat')

Exercise:

1. List the usernames of all logged-in users on the current system. Note: If the same user logs in multiple times, it will only be displayed once


[root@localhost ~]# who | cut -d&#39; &#39; -f1|uniqroot
Copy after login

 2. Take out the relevant information of the user who last logged in to the current system


[root@localhost ~]# id `last | head -1 | cut -d&#39; &#39; -f1`
uid=0(root) gid=0(root) groups=0(root)
Copy after login

 3. Take out the shell that is regarded as the default shell by the most users on the current system


[root@localhost ~]# cut -d&#39;:&#39; -f7 /etc/passwd|uniq -c|sort -n|tail -1|cut -d&#39; &#39; -f7/sbin/nologin
Copy after login

  4.将/etc/passd中的第三个字段设置最大的后10个用户的信息全部改为大写保存至/tmp/maxuser.txt文件中


[root@localhost ~]# sort -t&#39;:&#39; -k3 -n /etc/passwd|tail -10|tr &#39;a-z&#39; &#39;A-Z&#39; >/tmp/maxusers.txt
[root@localhost ~]# cat /tmp/maxusers.txt 
NOBODY:X:99:99:NOBODY:/:/SBIN/NOLOGIN
SYSTEMD-NETWORK:X:192:192:SYSTEMD NETWORK MANAGEMENT:/:/SBIN/NOLOGIN
NGINX:X:996:994:NGINX WEB SERVER:/VAR/LIB/NGINX:/SBIN/NOLOGIN
CHRONY:X:997:995::/VAR/LIB/CHRONY:/SBIN/NOLOGIN
POLKITD:X:998:996:USER FOR POLKITD:/:/SBIN/NOLOGIN
SYSTEMD-BUS-PROXY:X:999:997:SYSTEMD BUS PROXY:/:/SBIN/NOLOGIN
DINGJIE:X:1000:1000:DINGJIE:/HOME/DINGJIE:/BIN/BASH
JEFF:X:1001:1024:WOSHIDASHUAIBI:/HOME/JEFF:/BIN/BASH
EGON:X:1002:1002::/HOME/EGON:/BIN/BASH
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
Copy after login

  5.取出当前主机的IP地址


[root@localhost ~]# ifconfig | egrep "inet.*broadcast.*"|cut -d&#39; &#39; -f10192.168.0.133
Copy after login

  6.列出/etc目录下所有已.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中


[root@localhost ~]# find /etc -name &#39;*.conf&#39; | egrep -o "[^/]*(\.conf)$"|tr &#39;a-z&#39; &#39;A-Z&#39; >/tmp/etc.conf
[root@localhost ~]# cat /tmp/etc.conf 
RESOLV.CONF
CA-LEGACY.CONF
FASTESTMIRROR.CONF
LANGPACKS.CONF
SYSTEMD.CONF
VERSION-GROUPS.CONF
LVM.CONF
LVMLOCAL.CONF
ASOUND.CONF
LDAP.CONF
MLX4.CONF
RDMA.CONF
SMTPD.CONF
Copy after login

  7.显示/var目录下一级子目录或文件的总数


[root@localhost ~]# ls /var | wc -l21
Copy after login

  8.取出/etc/group第三个字段数值最小的10个组的名字


[root@localhost ~]# sort -t: -k3 -n /etc/group|head -10 |cut -d&#39;:&#39; -f1
root
bin
daemon
sys
adm
tty
disklpmem
kmem
Copy after login

  9.将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中


[root@localhost ~]# cat /etc/fstab /etc/issue > /tmp/etc.test
[root@localhost ~]# cat /tmp/etc.test 

#
# /etc/fstab
# Created by anaconda on Sat May 13 10:12:58 2017#
# Accessible filesystems, by reference, are maintained under &#39;/dev/disk&#39;# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#/dev/mapper/cl-root     /                       xfs     defaults        0 0UUID=2789d01a-4e2b-47a5-9c3c-537641648663 /boot                   xfs     defaults        0 0/dev/mapper/cl-swap     swap                    swap    defaults        0 0\S
Kernel \r on an \m
Copy after login

  对于正则表达式的使用需要多联系加强记忆,否则是用不好正则表达式的,在学习过程中切记多写多背。

The above is the detailed content of Detailed explanation of code cases about grep and regular expressions in Linux. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Difference between centos and ubuntu Difference between centos and ubuntu Apr 14, 2025 pm 09:09 PM

The key differences between CentOS and Ubuntu are: origin (CentOS originates from Red Hat, for enterprises; Ubuntu originates from Debian, for individuals), package management (CentOS uses yum, focusing on stability; Ubuntu uses apt, for high update frequency), support cycle (CentOS provides 10 years of support, Ubuntu provides 5 years of LTS support), community support (CentOS focuses on stability, Ubuntu provides a wide range of tutorials and documents), uses (CentOS is biased towards servers, Ubuntu is suitable for servers and desktops), other differences include installation simplicity (CentOS is thin)

How to install centos How to install centos Apr 14, 2025 pm 09:03 PM

CentOS installation steps: Download the ISO image and burn bootable media; boot and select the installation source; select the language and keyboard layout; configure the network; partition the hard disk; set the system clock; create the root user; select the software package; start the installation; restart and boot from the hard disk after the installation is completed.

Centos stops maintenance 2024 Centos stops maintenance 2024 Apr 14, 2025 pm 08:39 PM

CentOS will be shut down in 2024 because its upstream distribution, RHEL 8, has been shut down. This shutdown will affect the CentOS 8 system, preventing it from continuing to receive updates. Users should plan for migration, and recommended options include CentOS Stream, AlmaLinux, and Rocky Linux to keep the system safe and stable.

Detailed explanation of docker principle Detailed explanation of docker principle Apr 14, 2025 pm 11:57 PM

Docker uses Linux kernel features to provide an efficient and isolated application running environment. Its working principle is as follows: 1. The mirror is used as a read-only template, which contains everything you need to run the application; 2. The Union File System (UnionFS) stacks multiple file systems, only storing the differences, saving space and speeding up; 3. The daemon manages the mirrors and containers, and the client uses them for interaction; 4. Namespaces and cgroups implement container isolation and resource limitations; 5. Multiple network modes support container interconnection. Only by understanding these core concepts can you better utilize Docker.

What are the backup methods for GitLab on CentOS What are the backup methods for GitLab on CentOS Apr 14, 2025 pm 05:33 PM

Backup and Recovery Policy of GitLab under CentOS System In order to ensure data security and recoverability, GitLab on CentOS provides a variety of backup methods. This article will introduce several common backup methods, configuration parameters and recovery processes in detail to help you establish a complete GitLab backup and recovery strategy. 1. Manual backup Use the gitlab-rakegitlab:backup:create command to execute manual backup. This command backs up key information such as GitLab repository, database, users, user groups, keys, and permissions. The default backup file is stored in the /var/opt/gitlab/backups directory. You can modify /etc/gitlab

How to use docker desktop How to use docker desktop Apr 15, 2025 am 11:45 AM

How to use Docker Desktop? Docker Desktop is a tool for running Docker containers on local machines. The steps to use include: 1. Install Docker Desktop; 2. Start Docker Desktop; 3. Create Docker image (using Dockerfile); 4. Build Docker image (using docker build); 5. Run Docker container (using docker run).

What to do after centos stops maintenance What to do after centos stops maintenance Apr 14, 2025 pm 08:48 PM

After CentOS is stopped, users can take the following measures to deal with it: Select a compatible distribution: such as AlmaLinux, Rocky Linux, and CentOS Stream. Migrate to commercial distributions: such as Red Hat Enterprise Linux, Oracle Linux. Upgrade to CentOS 9 Stream: Rolling distribution, providing the latest technology. Select other Linux distributions: such as Ubuntu, Debian. Evaluate other options such as containers, virtual machines, or cloud platforms.

How to mount hard disk in centos How to mount hard disk in centos Apr 14, 2025 pm 08:15 PM

CentOS hard disk mount is divided into the following steps: determine the hard disk device name (/dev/sdX); create a mount point (it is recommended to use /mnt/newdisk); execute the mount command (mount /dev/sdX1 /mnt/newdisk); edit the /etc/fstab file to add a permanent mount configuration; use the umount command to uninstall the device to ensure that no process uses the device.

See all articles