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: 文字の大文字と小文字を無視します
-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' ' -f1|uniqroot
[root@localhost ~]# id `last | head -1 | cut -d' ' -f1`
uid=0(root) gid=0(root) groups=0(root)
[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
对于正则表达式的使用需要多联系加强记忆,否则是用不好正则表达式的,在学习过程中切记多写多背。
以上がLinuxのgrepと正規表現に関するコード事例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

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

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

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

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

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

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

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