cari
RumahOperasi dan penyelenggaraanoperasi dan penyelenggaraan linuxLinux中关于grep以及正则表达式的代码案例详解

grep简介

  grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。通常grep有三种版本grep、egrep(等同于grep -E)和fgrep。egrep为扩展的grep,fgrep则为快速grep(固定的字符串来对文本进行搜索,不支持正则表达式的引用但是查询极为快速)。grep是Linux文本处理三剑客之一。

grep使用方式

  使用方式:grep [OPTIONS] PATTERN [FILE...]

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

  常用选项:

  --color=auto:对匹配到的文本着色后进行高亮显示;

   -i:忽略字符的大小写

  -o:仅显示匹配到的字符串

  -v:显示不能被模式匹配到的行

  -E:支持使用扩展的正则表达式

  -q:静默模式,即不输出任何信息

  -A #:显示被模式匹配的行及其后#行

  -B #:显示被模式匹配的行及其前#行

  -C #:显示被模式匹配的行及其前后各#行

  :使用grep匹配时需使用双引号引起来(单引号为强引用),防止被系统误认为参数或者特殊命令而报错。

扩展grep使用方式

  使用方式:egrep [OPTIONS] PATTERN [FILE...] 

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

  -i:忽略字符的大小写
  -o:仅显示匹配到的字符串本身
  -v:显示不被模式匹配到的行
  -q:静默模式,即不输出任何信息
  -A #:显示被模式匹配的行及其后#行
  -B #:显示被模式匹配的行及其前#行
  -C #:显示被模式匹配的行及其前后各#行
  -G:支持基本正则表达式

grep正则表达式元字符

  ‘^‘: 锚定行首

  ‘$’: 锚定行尾 

  ‘.‘: 匹配任一一个字符

  ‘*’: 匹配零个或多个先前字符 

  ‘\?‘:匹配其前面的字符0次或者1次;

  ‘\+’:匹配其前面的字符1次或者多次;

  ‘\{m\}‘:匹配其前面的字符m次(\为转义字符)

  ‘\{m,n\}’:匹配其前面的字符至少m次,至多n次

  ‘[]‘: 匹配一个指定范围内的字符 | ‘[^]’匹配指定范围外的任意单个字符

  ‘\bf5d623ac803f6e17a122c69d2440845’或‘\b’:锚定词尾(可用\be9ac1d5ff9ade8366bae69467556064:匹配完整单词)

  ‘\(\)’:将多个字符当做一个整体进行处理

  后向引用:引用前面的分组括号中的模式所匹配到的字符

  分组括号中的模式匹配到的内容或被正则表达式引擎自动记录于内部的变量中:

  \1:模式从左侧起,第一个左括号及与之匹配的右括号之间模式匹配到的内容

  \2:模式从左侧起,第二个左括号及与之匹配的右括号之间模式匹配到的内容...

  扩展正则表达式与正则表达式略有不同:

  '[]':依旧匹配指定范围内的任意单个字符;但是有很多特殊匹配方式。

    [:digit:] 匹配任意单个数字

    [:lower:] 匹配任意单个小写字母               

    [:upper:] 匹配任意单个大写字母

    [:alpha:] 匹配任意单个字母

    [:alnum:] 匹配任意单个字母或数字

    [:punct:] 匹配任意单个符号

    [:space:] 匹配单个空格

  一些地方取消了转义字符的使用:

  ‘?‘:匹配其前面的字符0次或者1次;

  ‘+’:匹配其前面的字符1次或者多次;

  ‘{m}‘:匹配其前面的字符m次(\为转义字符)

  ‘{m,n}’:匹配其前面的字符至少m次,至多n次

  ():将一个或多个字符捆绑在一起,当做一个整体进行处理,反向引用照常使用。

  ‘|’:或(:‘C|cat’为C与cat,‘(C|c)at才是Cat与cat’)

练习题:

  1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次


[root@localhost ~]# who | cut -d' ' -f1|uniqroot

  2、取出最后登录到当前系统的用户的相关信息


[root@localhost ~]# id `last | head -1 | cut -d' ' -f1`
uid=0(root) gid=0(root) groups=0(root)

  3.取出当前系统上被用户当做其默认shell最多的那个shell


[root@localhost ~]# cut -d':' -f7 /etc/passwd|uniq -c|sort -n|tail -1|cut -d' ' -f7/sbin/nologin

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


[root@localhost ~]# sort -t':' -k3 -n /etc/passwd|tail -10|tr 'a-z' 'A-Z' >/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

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


[root@localhost ~]# ifconfig | egrep "inet.*broadcast.*"|cut -d' ' -f10192.168.0.133

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


[root@localhost ~]# find /etc -name '*.conf' | egrep -o "[^/]*(\.conf)$"|tr 'a-z' 'A-Z' >/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

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


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

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


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

  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 '/dev/disk'# 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

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

Atas ialah kandungan terperinci Linux中关于grep以及正则表达式的代码案例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Hati Linux: 5 Komponen TerasHati Linux: 5 Komponen TerasApr 13, 2025 am 12:15 AM

Lima komponen teras Linux adalah kernel, shell, sistem fail, perpustakaan sistem dan alat sistem. 1. Kernel menguruskan sumber perkakasan dan menyediakan perkhidmatan kepada aplikasi. 2. Shell berfungsi sebagai antara muka antara pengguna dan sistem, menafsirkan dan melaksanakan arahan. 3. Sistem fail bertanggungjawab untuk penyimpanan dan organisasi data. 4. Perpustakaan Sistem menyediakan fungsi yang dipraktikkan untuk menyediakan panggilan program. 5. Alat sistem digunakan untuk pengurusan dan penyelenggaraan sistem. Komponen ini bekerjasama untuk memberikan fungsi dan fleksibiliti Linux yang kuat.

Cara memeriksa konfigurasi OpenSSL DebianCara memeriksa konfigurasi OpenSSL DebianApr 12, 2025 pm 11:57 PM

Artikel ini memperkenalkan beberapa kaedah untuk memeriksa konfigurasi OpenSSL sistem Debian untuk membantu anda dengan cepat memahami status keselamatan sistem. 1. Sahkan versi OpenSSL terlebih dahulu, sahkan sama ada OpenSSL telah dipasang dan maklumat versi. Masukkan arahan berikut di terminal: Jika OpenSslversion tidak dipasang, sistem akan meminta ralat. 2. Lihat fail konfigurasi. Fail konfigurasi utama OpenSSL biasanya terletak di /etc/ssl/openssl.cnf. Anda boleh menggunakan editor teks (seperti nano) untuk melihat: Sudonano/etc/ssl/openssl.cnf Fail ini mengandungi maklumat konfigurasi penting seperti kunci, laluan sijil, dan algoritma penyulitan. 3. Menggunakan OPE

Cara Membina Persekitaran Pembangunan Hadoop di DebianCara Membina Persekitaran Pembangunan Hadoop di DebianApr 12, 2025 pm 11:54 PM

Panduan ini memperincikan bagaimana untuk membina persekitaran pembangunan Hadoop pada sistem Debian. 1. Pasang Kit Pembangunan Java (JDK) Pertama, pasang OpenJDK: SudoaptDateSudoaptinStallopenjdk-11-JDK-Iconfigure Java_Home Alam Sekitar: Java_home = "/usr/lib/jvm/java-11-opengdk-amd64" Simpan dan keluar, dan kemudian laksanakan: sumber/etc

Cara Melakukan Pengurusan Sumber Hadoop di DebianCara Melakukan Pengurusan Sumber Hadoop di DebianApr 12, 2025 pm 11:51 PM

Menguruskan sumber Hadoop secara berkesan pada sistem Debian memerlukan langkah -langkah berikut: Hadoop Deployment: Pertama, selesaikan pemasangan dan konfigurasi Hadoop pada sistem Debian. Ini termasuk operasi yang diperlukan seperti memuat turun pakej pengedaran Hadoop, penguraian, penetapan pembolehubah persekitaran, dan lain -lain. Anda perlu mengubah suai fail konfigurasi teras, seperti: core-site.xml, hdfs-site.xml, mapred-site.x

Apakah tetapan keselamatan untuk log debian tomcat?Apakah tetapan keselamatan untuk log debian tomcat?Apr 12, 2025 pm 11:48 PM

Untuk meningkatkan keselamatan log Debiantomcat, kita perlu memberi perhatian kepada dasar -dasar utama berikut: 1. Kawalan Kebenaran dan Pengurusan Fail: Kebenaran Fail Log: Kebenaran fail log lalai (640) mengehadkan akses. Adalah disyorkan untuk mengubah suai nilai UMASK dalam skrip Catalina.sh (contohnya, berubah dari 0027 hingga 0022), atau secara langsung menetapkan fail filepermissions dalam fail konfigurasi LOG4J2 untuk memastikan kebenaran baca dan tulis yang sesuai. Lokasi fail log: Log Tomcat biasanya terletak di/opt/tomcat/log (atau laluan yang serupa), dan tetapan kebenaran direktori ini perlu diperiksa dengan kerap. 2. Putaran dan format log: putaran log: konfigurasikan server.xml

Cara Mentafsirkan Amaran dalam Log TomcatCara Mentafsirkan Amaran dalam Log TomcatApr 12, 2025 pm 11:45 PM

Mesej amaran dalam log pelayan Tomcat menunjukkan masalah yang berpotensi yang boleh menjejaskan prestasi aplikasi atau kestabilan. Untuk mentafsirkan maklumat amaran ini dengan berkesan, anda perlu memberi perhatian kepada perkara -perkara utama berikut: Kandungan amaran: Berhati -hati mengkaji maklumat amaran untuk menjelaskan jenis, penyebab dan penyelesaian yang mungkin. Maklumat amaran biasanya memberikan penerangan terperinci. Tahap Log: Log Tomcat mengandungi tahap maklumat yang berbeza, seperti maklumat, amaran, kesilapan, dan lain-lain. "Amaran" Peringatan Tahap adalah isu bukan maut, tetapi mereka memerlukan perhatian. Timestamp: Catat masa apabila amaran berlaku untuk mengesan titik masa apabila masalah berlaku dan menganalisis hubungannya dengan peristiwa atau operasi tertentu. Maklumat konteks: Lihat kandungan log sebelum dan selepas maklumat amaran, dapatkan

Bagaimana log tomcat membantu menyelesaikan masalah kebocoran memoriBagaimana log tomcat membantu menyelesaikan masalah kebocoran memoriApr 12, 2025 pm 11:42 PM

Log Tomcat adalah kunci untuk mendiagnosis masalah kebocoran memori. Dengan menganalisis log tomcat, anda boleh mendapatkan wawasan mengenai kelakuan memori dan pengumpulan sampah (GC), dengan berkesan mencari dan menyelesaikan kebocoran memori. Berikut adalah cara menyelesaikan masalah kebocoran memori menggunakan log Tomcat: 1. GC Log Analysis terlebih dahulu, membolehkan pembalakan GC terperinci. Tambah pilihan JVM berikut kepada parameter permulaan TOMCAT: -XX: PrintGCDetails-XX: PrintGCDATestamps-XLogGC: GC.LOG Parameter ini akan menghasilkan log GC terperinci (GC.LOG), termasuk maklumat seperti jenis GC, saiz dan masa yang dikitar semula. Analisis GC.Log

Apakah kesan Debian Apache Log pada Prestasi PelayanApakah kesan Debian Apache Log pada Prestasi PelayanApr 12, 2025 pm 11:39 PM

Kesan log Apache pada prestasi pelayan di bawah sistem Debian adalah pedang bermata dua, yang mempunyai kesan positif dan kesan negatif yang berpotensi. Aspek Positif: Alat Diagnosis Masalah: Apache Log Records Semua permintaan dan tindak balas secara terperinci pada pelayan, dan merupakan sumber yang berharga untuk mencari kesalahan dengan cepat. Dengan menganalisis log ralat, kesilapan konfigurasi, isu kebenaran, dan pengecualian lain dapat dikenalpasti dengan mudah. Pemantauan Keselamatan Sentinel: Log akses dapat mengesan ancaman keselamatan yang berpotensi, seperti percubaan serangan berniat jahat. Dengan menetapkan peraturan audit log, aktiviti yang tidak normal dapat dikesan dengan berkesan. Pembantu Analisis Prestasi: Kekerapan Permintaan Pembalakan Akses dan Penggunaan Sumber Untuk membantu menganalisis halaman atau perkhidmatan mana yang paling popular, dengan itu mengoptimumkan peruntukan sumber. Digabungkan dengan atas atau htop, dll.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.