検索
ホームページ運用・保守Linuxの運用と保守Linux grep と正規表現の簡単な紹介

Linux grep と正規表現の簡単な紹介

Sep 21, 2017 am 11:47 AM
greplinux表現

grep は、正規表現を使用してテキストを検索し、一致する行を出力する強力なテキスト検索ツールです。この記事を通じて Linux の grep と正規表現についての知識を共有しましょう。興味のある友達は一緒に見てください

grep の紹介

grep は正規表現を使用できる強力なテキスト検索ツールです。テキストと一致する行を印刷します。通常、grep には grep、egrep (grep -E と同等)、fgrep の 3 つのバージョンがあります。 egrep は拡張 grep で、fgrep は高速 grep (テキストを検索するための固定文字列、正規表現参照はサポートしていませんが、クエリは非常に高速です) です。 grep は Linux テキスト処理の三銃士の 1 つです。

grep の使い方

使用法:


grep [OPTIONS] PATTERN [FILE...]


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

共通オプション:

--color=auto: 一致したテキストに色を付けて強調表示します

-i: I無視する文字の場合

-o: 一致した文字列のみを表示

-v: パターンに一致しない行を表示

-E: 拡張正規表現の使用をサポート

-q: サイレントモード、つまり情報は出力されません

-A #: パターンに一致した行とその後の # 行を表示します

-B #: パターンに一致した行とその前の # 行を表示します

-C #: を表示しますパターンに一致する行とその前の # 行

パターンに一致する行と前後の # 行

注: grep マッチングを使用するときは、システムが一致しないように二重引用符 (一重引用符は強い引用符です) を使用する必要があります。パラメータまたは特別なコマンドと間違えてエラーを報告します。 拡張 grep 使用法

Usage:


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

-i: 文字の大文字と小文字を無視します
-o: 一致した文字列自体のみを表示します
-v: パターンと一致しないものを表示します -q:サイレントモード、つまり情報は出力されません
-A #: パターンに一致した行とその # 行目以降を表示します
-B #: パターンに一致した行とその前の # 行目を表示します
-C # : パターンで一致した行とその前後の # 行を表示します

-G: 基本的な正規表現をサポートします

grep 正規表現メタキャラクター

'^': 行頭のアンカー

'$' : 行末のアンカー

'.': 任意の 1 文字と一致

'*': 0 個以上の前の文字と一致

'?': 前の文字と 0 回または 1 回一致

'+' : 前の文字と 1 回以上一致します

: 前の文字と m 回一致します (エスケープ文字の場合)

: 前の文字と m 回以上一致します最大 n 回

[]': 指定範囲内の文字と一致 | '[^]' 指定範囲外の任意の 1 文字と一致

': 完全な単語に一致)

: 複数の文字を全体として扱います

後方参照: 前の文字を引用しますグループ化括弧

グループ化括弧内のパターンと一致するコンテンツは、正規表現エンジンによって自動的に内部変数に記録される場合があります:

1: パターンは左から始まり、最初の左括弧と、その間のパターンと一致するコンテンツ一致する右括弧

2: パターンは左から始まり、2 番目の左括弧と一致する右括弧の間のパターンによって一致するコンテンツ...

拡張正規表現は正規表現とは少し異なります:

[] ': 指定された範囲内の任意の 1 文字に一致しますが、特別な一致方法が多数あります。 T [: Digit:] 任意の 1 つの数字と一致します

[: LOWER:] 任意の 1 つの小文字と一致します

[: upper:] 任意の 1 つの大文字と一致します

[: alpha:] 任意の 1 つの文字と一致します

[:: alnum:] は任意の 1 つの文字または数字に一致します

[:punct:] は任意の 1 つの記号に一致します

[:space:] は単一のスペースに一致します

いくつかの場所でエスケープ文字の使用がキャンセルされました:

'?' : 前の文字が 0 回または 1 回一致します。

'+': 前の文字と 1 回以上一致します。

'{m}': 前の文字が m 回一致します (エスケープ文字の場合)

{m ,n}': 前の文字と少なくとも m 回、最大で n 回一致します

(): 1 つ以上の文字を束ねて全体として処理します。通常どおり、後方参照が使用されます。

|': または (注: 'C|cat' は C と cat、'(C|c)at は Cat と cat' です)

練習問題:

1. 現在のユーザー名をリストします。システム上のすべてのログイン ユーザーの数。 注: 同じユーザーが複数回ログインした場合、表示されるのは 1 回だけです


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

  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' ' -f10
192.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 -l

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


[root@localhost ~]# sort -t: -k3 -n /etc/group|head -10 |cut -d':' -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
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 0
UUID=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

以上がLinux grep と正規表現の簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Linuxのメンテナンスモード:それを使用する時期と理由Linuxのメンテナンスモード:それを使用する時期と理由Apr 25, 2025 am 12:15 AM

Linuxメンテナンスモードを使用するタイミングと理由:1)システムが起動するとき、2)主要なシステムの更新またはアップグレードを実行するとき、3)ファイルシステムメンテナンスを実行するとき。メンテナンスモードは、安全で制御された環境を提供し、運用上の安全性と効率を確保し、ユーザーへの影響を減らし、システムセキュリティを強化します。

Linux:必須コマンドと操作Linux:必須コマンドと操作Apr 24, 2025 am 12:20 AM

Linuxの不可欠なコマンドは次のとおりです。1.LS:リストディレクトリの内容; 2.CD:作業ディレクトリを変更します。 3.mkdir:新しいディレクトリを作成します。 4.RM:ファイルまたはディレクトリを削除します。 5.CP:ファイルまたはディレクトリをコピーします。 6.MV:ファイルまたはディレクトリの移動または名前を変更します。これらのコマンドは、カーネルと対話することにより、ユーザーがファイルとシステムを効率的に管理するのに役立ちます。

Linux操作:ファイル、ディレクトリ、およびアクセス許可の管理Linux操作:ファイル、ディレクトリ、およびアクセス許可の管理Apr 23, 2025 am 12:19 AM

Linuxでは、ファイルおよびディレクトリ管理ではLS、CD、MKDIR、RM、CP、MVコマンドを使用し、許可管理はCHMOD、CHOWN、およびCHGRPコマンドを使用します。 1。LS-Lなどのファイルおよびディレクトリ管理コマンドは、詳細情報、MKDIR-Pを再帰的に作成するディレクトリを再帰的に作成します。 2。CHMOD755FILEセットファイル許可、CHOWNUSERFILEファイル所有者、CHGRPGROUPFILEの変更ファイルグループなどの許可管理コマンド。これらのコマンドは、ファイルシステム構造とユーザーおよびグループシステムに基づいており、システムコールとメタデータを介して動作および制御します。

Linuxのメンテナンスモードとは何ですか?説明したLinuxのメンテナンスモードとは何ですか?説明したApr 22, 2025 am 12:06 AM

メンテナンスメモデンリンリンアスピアルブーテンビロンメント、criticalsystemmaincencetasks.itallowsadministratorstopertopertopertopersetstingtingpasswords、Repainingfilesystems、およびRecoveringfrombootfailurureSinaMinimalenvironment.

Linux:基本的な部分に深く潜りますLinux:基本的な部分に深く潜りますApr 21, 2025 am 12:03 AM

Linuxのコアコ​​ンポーネントには、カーネル、ファイルシステム、シェル、ユーザー、カーネルスペース、デバイスドライバー、パフォーマンスの最適化とベストプラクティスが含まれます。 1)カーネルは、ハードウェア、メモリ、プロセスを管理するシステムのコアです。 2)ファイルシステムはデータを整理し、Ext4、BTRFS、XFSなどの複数のタイプをサポートします。 3)シェルは、ユーザーがシステムと対話するためのコマンドセンターであり、スクリプトをサポートします。 4)システムの安定性を確保するために、ユーザースペースをカーネルスペースから分離します。 5)デバイスドライバーは、ハードウェアをオペレーティングシステムに接続します。 6)パフォーマンスの最適化には、システム構成とベストプラクティスのチューニングが含まれます。

Linuxアーキテクチャ:5つの基本コンポーネントを発表しますLinuxアーキテクチャ:5つの基本コンポーネントを発表しますApr 20, 2025 am 12:04 AM

Linuxシステムの5つの基本コンポーネントは次のとおりです。1。Kernel、2。Systemライブラリ、3。Systemユーティリティ、4。グラフィカルユーザーインターフェイス、5。アプリケーション。カーネルはハードウェアリソースを管理し、システムライブラリは事前コンパイルされた機能を提供し、システムユーティリティはシステム管理に使用され、GUIは視覚的な相互作用を提供し、アプリケーションはこれらのコンポーネントを使用して機能を実装します。

Linux操作:メンテナンスモードを利用しますLinux操作:メンテナンスモードを利用しますApr 19, 2025 am 12:08 AM

Linuxメンテナンスモードは、Grubメニューから入力できます。特定の手順は次のとおりです。1)GRUBメニューのカーネルを選択し、「E」を押して編集し、2)「Linux」行の最後に「シングル」または「1」を追加し、3)Ctrl Xを押して開始します。メンテナンスモードは、システム修理、パスワードリセット、システムのアップグレードなどのタスクに安全な環境を提供します。

Linux:リカバリモード(およびメンテナンス)に入る方法Linux:リカバリモード(およびメンテナンス)に入る方法Apr 18, 2025 am 12:05 AM

Linux Recoveryモードを入力する手順は次のとおりです。1。システムを再起動し、特定のキーを押してGrubメニューを入力します。 2。[RecoveryMode)でオプションを選択します。 3. FSCKやrootなどの回復モードメニューで操作を選択します。リカバリモードを使用すると、シングルユーザーモードでシステムを開始し、ファイルシステムのチェックと修理を実行し、構成ファイルを編集し、システムの問題を解決するのに役立ちます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境