検索
ホームページシステムチュートリアルLinuxawk の特殊モード BEGIN と END を使用して処理する方法

awk の特殊モード BEGIN と END を使用して処理する方法

Jan 02, 2024 pm 06:06 PM
linuxLinuxチュートリアルレッドハットLinuxシステムLinuxコマンドLinux 認定レッドハットリナックスLinuxビデオ

awk シリーズの 8 番目のセクションでは、変数、数値式、代入演算子などの強力な awk コマンド関数を紹介しました。

このセクションでは、awk 関数、つまり awk の特殊モード BEGINEND について詳しく学習します。

複雑な awk 操作を構築するさらなる方法を開発し模索するにつれて、awk のこれらの特別な機能がいかに強力であるかを証明していきます。

始める前に、awk シリーズの概要を確認しましょう。このシリーズを開始したときに、awk 命令の一般的な構文が次のようなものであると指摘したことを思い出してください:

リーリー

上記の構文では、awk スクリプトの形式は次のとおりです。

リーリー

通常、スクリプト内のパターン (/pattern) は正規表現であることがわかります。さらに、ここで特別なパターン BENGIN および を使用することもできます。終わり# ##。したがって、次の形式で awk コマンドを記述することもできます: リーリー

awk スクリプトで特別なモードを使用する場合:

BEGINEND、対応する意味は次のとおりです:

  • BEGIN モード: awk が入力行を読み取る直前に BEGIN で指定されたアクションを実行することを意味します。
  • END モード: awk が正式に終了する前に、END で指定されたアクションを実行することを意味します。
これらの特別なモードを含む awk コマンド スクリプトの実行フローは次のとおりです:

  1. BEGIN モードがスクリプトで使用される場合、入力行が読み取られる前に、BEGIN 内のすべてのアクションが実行されます。
  2. 次に、入力行が読み込まれ、異なるセグメントに解析されます。
  3. 次に、指定された非特殊パターンと入力行との比較照合が行われ、一致した場合にパターンに応じたアクションが実行されます。指定したすべてのパターンに対してこの手順を繰り返します。
  4. 次に、すべての入力行に対して手順 2 と 3 を繰り返します。
  5. すべての入力行が読み取られて処理された後、
  6. END モードを指定すると、対応するアクションが実行されます。
特殊モードを使用する場合、awk 操作から最良の結果を得るには、上記の実行順序を覚えておく必要があります。

理解を容易にするために、セクション 8 の例を使用して説明します。この例は、Tecmint が所有し、domains.txt というファイルに保存されているドメイン名のリストに関するものです。

リーリー リーリー

如何使用 awk 的特殊模式 BEGIN 与 END

ファイルの内容を表示 この例では、ドメイン名

tecmint.com が Domains.txt ファイルに出現する回数を数えることを目的としています。そこで、タスクを完了するのに役立つ、変数、数式、代入演算子のアイデアを使用する簡単なシェル スクリプトを作成しました。スクリプトの内容は次のとおりです。 リーリー 次に、上記のスクリプトの awk コマンドに、以下のように 2 つの特別なパターンを適用しましょう:

BEGIN

END : スクリプトを置く必要があります:

リーリー

は次のように変更されました:

awk ' BEGIN {  print "文件中出现 tecmint.com 的次数是:" ; }
/^tecmint.com/ {  counter+=1  ;  }
END {  printf "%s/n",  counter  ; } 
'  $file

在修改了 awk 命令之后,现在完整的 shell 脚本就像下面这样:

#!/bin/bash
for file in $@; do
if [ -f $file ] ; then
### 输出文件名
echo "File is: $file"
### 输出文件中 tecmint.com 出现的总次数
awk ' BEGIN {  print "文件中出现 tecmint.com 的次数是:" ; }
/^tecmint.com/ {  counter+=1  ;  }
END {  printf "%s/n",  counter  ; } 
'  $file
else
### 若输入不是文件,则输出错误信息
echo "$file 不是一个文件,请指定一个文件。" >&2 && exit 1
fi
done
### 成功执行后使用退出代码 0 终止脚本
exit 0

如何使用 awk 的特殊模式 BEGIN 与 END

awk 模式 BEGIN 和 END

当我们运行上面的脚本时,它会首先输出 domains.txt 文件的位置,然后执行 awk 命令脚本,该命令脚本中的特殊模式 BEGIN 将会在从文件读取任何行之前帮助我们输出这样的消息“文件中出现 tecmint.com 的次数是: ”。

接下来,我们的模式/^tecmint.com/ 会在每个输入行中进行比较,对应的动作{ counter+=1 ; } 会在每个匹配成功的行上执行,它会统计出 tecmint.com 在文件中出现的次数。

最终,END 模式将会输出域名 tecmint.com 在文件中出现的总次数。

$ ./script.sh ~/domains.txt 

如何使用 awk 的特殊模式 BEGIN 与 END

用于统计字符串出现次数的脚本

最后总结一下,我们在本节中演示了更多的 awk 功能,并学习了特殊模式 BEGINEND 的概念。

正如我之前所言,这些 awk 功能将会帮助我们构建出更复杂的文本过滤操作。第十节将会给出更多的 awk 功能,我们将会学习 awk 内置变量的思想,所以,请继续保持关注。


以上がawk の特殊モード BEGIN と END を使用して処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はLinux就该这么学で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Linuxを学ぶのは難しいですか?Linuxを学ぶのは難しいですか?Apr 18, 2025 am 12:23 AM

Linuxの学習は難しくありません。 1.Linuxは、UNIXに基づいたオープンソースオペレーティングシステムであり、サーバー、組み込みシステム、およびパーソナルコンピューターで広く使用されています。 2。ファイルシステムと許可管理を理解することが重要です。ファイルシステムは階層的であり、許可には読み取り、書き込み、実行が含まれます。 3。APTやDNFなどのパッケージ管理システムは、ソフトウェア管理を便利にします。 4。プロセス管理は、PSおよびTOPコマンドを通じて実装されます。 5. MKDIR、CD、Touch、Nanoなどの基本的なコマンドから学習を開始し、シェルスクリプトやテキスト処理などの高度な使用法を試してください。 6.許可問題などの一般的なエラーは、SudoとChmodを通じて解決できます。 7.パフォーマンスの最適化の提案には、HTOPを使用してリソースを監視すること、不要なファイルのクリーニング、SYの使用が含まれます

Linux管理者の給与はいくらですか?Linux管理者の給与はいくらですか?Apr 17, 2025 am 12:24 AM

Linux管理者の平均年salは、米国で75,000〜95,000ドル、ヨーロッパでは40,000〜60,000ユーロです。給与を増やすには、次のことができます。1。クラウドコンピューティングやコンテナテクノロジーなどの新しいテクノロジーを継続的に学習します。 2。プロジェクトの経験を蓄積し、ポートフォリオを確立します。 3.プロフェッショナルネットワークを確立し、ネットワークを拡大します。

Linuxの主な目的は何ですか?Linuxの主な目的は何ですか?Apr 16, 2025 am 12:19 AM

Linuxの主な用途には、1。Serverオペレーティングシステム、2。EmbeddedSystem、3。Desktopオペレーティングシステム、4。開発およびテスト環境。 Linuxはこれらの分野で優れており、安定性、セキュリティ、効率的な開発ツールを提供します。

インターネットはLinuxで実行されますか?インターネットはLinuxで実行されますか?Apr 14, 2025 am 12:03 AM

インターネットは単一のオペレーティングシステムに依存していませんが、Linuxはその上で重要な役割を果たしています。 Linuxは、サーバーやネットワークデバイスで広く使用されており、安定性、セキュリティ、スケーラビリティに人気があります。

Linux操作とは何ですか?Linux操作とは何ですか?Apr 13, 2025 am 12:20 AM

Linuxオペレーティングシステムのコアは、コマンドラインインターフェイスで、コマンドラインを介してさまざまな操作を実行できます。 1.ファイルおよびディレクトリ操作は、ファイルとディレクトリを管理するために、LS、CD、MKDIR、RM、その他のコマンドを使用します。 2。ユーザーおよび許可管理は、useradd、passwd、chmod、その他のコマンドを介してシステムのセキュリティとリソースの割り当てを保証します。 3。プロセス管理は、PS、Kill、およびその他のコマンドを使用して、システムプロセスを監視および制御します。 4。ネットワーク操作には、Ping、Ifconfig、SSH、およびネットワーク接続を構成および管理するためのその他のコマンドが含まれます。 5.システムの監視とメンテナンスは、TOP、DF、DUなどのコマンドを使用して、システムの動作ステータスとリソースの使用を理解します。

Linuxエイリアスを使用したカスタムコマンドショートカットで生産性を高めますLinuxエイリアスを使用したカスタムコマンドショートカットで生産性を高めますApr 12, 2025 am 11:43 AM

導入 Linuxは、柔軟性と効率性により、開発者、システム管理者、およびパワーユーザーが好む強力なオペレーティングシステムです。しかし、頻繁に長く複雑なコマンドを使用することは退屈でERです

Linuxは実際に何に適していますか?Linuxは実際に何に適していますか?Apr 12, 2025 am 12:20 AM

Linuxは、サーバー、開発環境、埋め込みシステムに適しています。 1.サーバーオペレーティングシステムとして、Linuxは安定して効率的であり、多くの場合、高電流アプリケーションの展開に使用されます。 2。開発環境として、Linuxは効率的なコマンドラインツールとパッケージ管理システムを提供して、開発効率を向上させます。 3.埋め込まれたシステムでは、Linuxは軽量でカスタマイズ可能で、リソースが限られている環境に適しています。

Linuxで倫理的ハッキングを習得するための必須ツールとフレームワークLinuxで倫理的ハッキングを習得するための必須ツールとフレームワークApr 11, 2025 am 09:11 AM

はじめに:Linuxベースの倫理的ハッキングでデジタルフロンティアを保護します ますます相互に接続されている世界では、サイバーセキュリティが最重要です。 倫理的なハッキングと浸透テストは、脆弱性を積極的に特定し、緩和するために不可欠です

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

AI Hentai Generator

AI Hentai Generator

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

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

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

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

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 Mac版

SublimeText3 Mac版

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

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、