目次
grepの紹介
grepの使い方
拡張 grep 使用法
'^': 行頭のアンカー
ホームページ 運用・保守 Linuxの運用と保守 Linuxのgrepと正規表現に関するコード事例を詳しく解説

Linuxのgrepと正規表現に関するコード事例を詳しく解説

Jul 26, 2017 pm 04:03 PM
grep linux 通常

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: 文字の大文字と小文字を無視します

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

-v: パターンで一致しない文字列を表示します

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

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

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

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

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

: grep マッチングを使用する場合は、double を使用する必要があります引用符 (一重引用符は強力です) 参照) を使用して、システムがパラメーターまたは特殊なコマンドと誤ってエラーを報告するのを防ぎます。

拡張 grep 使用法

使用法: egrep [OPTIONS] PATTERN [FILE...]

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

-i: 文字サイズを無視します。
-o: 一致した文字列そのもののみを表示します
-v: パターンと一致しない行を表示します
-q: サイレントモード、つまり情報は出力されません
-A #: パターンとその-B で一致した行を表示します#: パターンと一致した行と前後 # 行を表示 -C #: パターンと一致した行と前後 # 行を表示
-G: 基本的な正規表現をサポート

grep 正規表現 数式文字

'^': 行頭のアンカー

'$': 行末のアンカー

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

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

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

'+': 前の文字と 1 回以上一致します。 m,n}': 前の文字と少なくとも m 回、最大で n 回一致します。 '[]': 指定された範囲内の文字と一致します。 '[^]' 指定された範囲外の文字と一致します。

の任意の 1 文字 | '<' または 'b': 単語の先頭をアンカー、'>' または 'b': 単語の末尾をアンカー (利用可能 : 単語全体と一致)

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

後方参照: 前のグループ括弧内のパターンと一致する文字を参照します

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

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

2: パターンは左から始まり、最初のコンテンツは一致しました2 つの左括弧と対応する右括弧の間のパターンによって...

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

'[]': 指定された範囲に一致します。多くの特別なマッチング方法。 [:digit:] は任意の 1 桁の数字と一致します

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

[: punct:] は単一の記号に一致します

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

いくつかの場所でエスケープ文字の使用がキャンセルされました: '?': その前の文字を 0 回または 1 回一致させます

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

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

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

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

|': or (

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

練習問題:

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

[root@localhost ~]# who | cut -d&#39; &#39; -f1|uniqroot
ログイン後にコピー

2. 現在のシステムに最後にログインしたユーザーの関連情報を取り出します。

[root@localhost ~]# id `last | head -1 | cut -d&#39; &#39; -f1`
uid=0(root) gid=0(root) groups=0(root)
ログイン後にコピー
3. 現在のシステムでほとんどのユーザーがデフォルトのシェルとみなしているシェルを取り出します

[root@localhost ~]# cut -d&#39;:&#39; -f7 /etc/passwd|uniq -c|sort -n|tail -1|cut -d&#39; &#39; -f7/sbin/nologin
ログイン後にコピー

  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
ログイン後にコピー

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


[root@localhost ~]# ifconfig | egrep "inet.*broadcast.*"|cut -d&#39; &#39; -f10192.168.0.133
ログイン後にコピー

  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
ログイン後にコピー

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


[root@localhost ~]# ls /var | wc -l21
ログイン後にコピー

  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
ログイン後にコピー

  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
ログイン後にコピー

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

以上がLinuxのgrepと正規表現に関するコード事例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Android TV Box が非公式の Ubuntu 24.04 アップグレードを取得 Android TV Box が非公式の Ubuntu 24.04 アップグレードを取得 Sep 05, 2024 am 06:33 AM

多くのユーザーにとって、Android TV ボックスをハッキングするのは気が遠くなるように思えます。しかし、開発者の Murray R. Van Luyn は、Broadcom チップが不足する中、Raspberry Pi に代わる適切な代替品を探すという課題に直面しました。アルムビアとの共同作業

Deepseek Webバージョンの入り口Deepseek公式ウェブサイトの入り口 Deepseek Webバージョンの入り口Deepseek公式ウェブサイトの入り口 Feb 19, 2025 pm 04:54 PM

DeepSeekは、Webバージョンと公式Webサイトの2つのアクセス方法を提供する強力なインテリジェント検索および分析ツールです。 Webバージョンは便利で効率的であり、公式ウェブサイトは包括的な製品情報、ダウンロードリソース、サポートサービスを提供できます。個人であろうと企業ユーザーであろうと、DeepSeekを通じて大規模なデータを簡単に取得および分析して、仕事の効率を向上させ、意思決定を支援し、イノベーションを促進することができます。

DeepSeekをインストールする方法 DeepSeekをインストールする方法 Feb 19, 2025 pm 05:48 PM

DeepSeekをインストールするには、Dockerコンテナ(最も便利な場合は、互換性について心配する必要はありません)を使用して、事前コンパイルパッケージ(Windowsユーザー向け)を使用してソースからコンパイル(経験豊富な開発者向け)を含む多くの方法があります。公式文書は慎重に文書化され、不必要なトラブルを避けるために完全に準備します。

BitPie Bitpie ウォレット アプリのダウンロード アドレス BitPie Bitpie ウォレット アプリのダウンロード アドレス Sep 10, 2024 pm 12:10 PM

BitPie Bitpie ウォレット アプリをダウンロードするにはどうすればよいですか?手順は次のとおりです。 AppStore (Apple デバイス) または Google Play ストア (Android デバイス) で「BitPie Bitpie Wallet」を検索します。 「入手」または「インストール」ボタンをクリックしてアプリをダウンロードします。コンピューター版の場合は、BitPie ウォレットの公式 Web サイトにアクセスし、対応するソフトウェア パッケージをダウンロードしてください。

Bitget公式ウェブサイトのインストール(2025初心者ガイド) Bitget公式ウェブサイトのインストール(2025初心者ガイド) Feb 21, 2025 pm 08:42 PM

Bitgetは、スポット取引、契約取引、デリバティブなど、さまざまな取引サービスを提供する暗号通貨交換です。 2018年に設立されたこのExchangeは、シンガポールに本社を置き、安全で信頼性の高い取引プラットフォームをユーザーに提供することに取り組んでいます。 Bitgetは、BTC/USDT、ETH/USDT、XRP/USDTなど、さまざまな取引ペアを提供しています。さらに、この取引所はセキュリティと流動性について評判があり、プレミアム注文タイプ、レバレッジド取引、24時間年中無休のカスタマーサポートなど、さまざまな機能を提供します。

詳細説明:シェルスクリプト変数判定パラメータコマンド 詳細説明:シェルスクリプト変数判定パラメータコマンド Sep 02, 2024 pm 03:25 PM

システム変数 $n は、スクリプトまたは関数に渡されるパラメータです。 nはパラメータの数を示す数字です。たとえば、最初のパラメータは $1、2 番目のパラメータは $2$ です? 前のコマンドの終了ステータス、または関数の戻り値。成功した場合は 0、失敗した場合は 1 を返します $#スクリプトまたは関数に渡されるパラメータの数 $* これらのパラメータはすべて二重引用符で囲まれます。スクリプトが 2 つのパラメータを受け取る場合、$* は $1$2$0 実行されるコマンドの名前と等しくなります。シェル スクリプトの場合、$@ が二重引用符 ("") で囲まれている場合、これは起動されたコマンドへのパスになります。$* とは少し異なります。スクリプトが 2 つのパラメータを受け取る場合、$@ は現在のシェルのプロセス番号である $1$2$$ に相当します。シェルスクリプトの場合、これは実行時のプロセスです。

Zabbix 3.4 ソースコードコンパイルのインストール Zabbix 3.4 ソースコードコンパイルのインストール Sep 04, 2024 am 07:32 AM

1. インストール環境 (Hyper-V 仮想マシン): $hostnamectlStatichostname:localhost.localdomainIconname:computer-vmChassis:vmMachineID:renwoles1d8743989a40cb81db696400BootID:renwoles272f4aa59935dcdd0d456501Virtualization:microsoftOperatingSystem:CentOS Linux7(Core)CPEOSName: CP:

OUYI OKXインストールパッケージが直接含まれています OUYI OKXインストールパッケージが直接含まれています Feb 21, 2025 pm 08:00 PM

世界をリードするデジタル資産交換であるOuyi Okxは、安全で便利な取引体験を提供するために、公式のインストールパッケージを開始しました。 OUYIのOKXインストールパッケージは、ブラウザに直接インストールでき、ユーザー向けの安定した効率的な取引プラットフォームを作成できます。インストールプロセスは、簡単で理解しやすいです。

See all articles