Linux でファイル内の特定の文字の数を数える方法

Linux でファイル内の特定の文字の数を数える方法

ファイル内の文字列の数を数えることは、実際には砂の中の石を探すようなものです。ある人は、石を見た後にその上に印を付け (grep)、何個の印を付けたかを覚えます。ある人は、石を見た後にそれを掘り起こし (tr)、最後に掘った石の個数を数えます。ある人は、石を見た後にその石を飛び越え (awk)、何回飛び越えたかを数えます。

これは私が使用したファイルです

[root@bzhou test]# catファイル
ハフスダ
ハハフスドフスドハハ
ハハハ

「haha」という文字列を一致させたい

1. Grepの-oオプション

[root@bzhou test]# grep -c 'haha' ファイル
2

最初は -c オプションが使用されていましたが、-c は 1 行しかカウントできません。行内に一致する文字列が複数ある場合、-c は無力になります。

これは正しい

[root@bzhou test]# grep -o 'haha' ファイル | wc -l
3

2. awk

これはCUのblackoldのおかげです。

[root@bzhou test]# awk -v RS='haha' 'END {print --NR}' ファイル

-v は変数の値を設定するために使用されます。RS はレコード区切り文字です。デフォルトは改行 (\n) で、awk はデータを行ごとに読み取ります。ただし、RS が 'haha' の場合、データは 'haha' として読み取られます。NR は読み取られるレコードの数です。n レコードは n-1 個の区切り文字で区切られるため、--NR になります。

3.tr

厳密に言えば、tr は文字列を一致させることはできず、単一の文字のみを一致させることができます。ここでは、このファイル内の「h」の数を一致させます。

[root@bzhou test]# tr -cd 'h' <ファイル | wc -c
8
[root@bzhou test]# grep -o 'h' ファイル | wc -l
8

-d は特定の文字を削除することができます。-d のみを使用すると、特定の文字を削除した後の文字列が出力されます。ただし、-c は表示を反転することができ、削除された文字が表示されます。次に、wc -c を使用して文字数をカウントできます。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Linux シェル ディレクトリ内のファイルを検索するために、if と組み合わせた for ループを使用する方法
  • Linuxで現在のスクリプトの実際のパスを取得する方法
  • Linux での grep コマンドの使い方の詳細な説明
  • Linux テキスト検索コマンド find の詳細な使用方法
  • Linuxのテキスト処理コマンドsortの詳細な説明
  • Linuxのsortコマンドの複数のパラメータを理解するための1つの質問
  • Linuxはjoin -a1を使用して2つのファイルを結合します
  • Linux でファイルを削除するときに「操作は許可されていません」というプロンプトが表示される場合の対処方法
  • LinuxのバックグラウンドでPythonプログラムを実行するいくつかの方法
  • Linux での Python のアップグレードと pip のインストールの詳細な説明

<<:  MySQL データベース内の同じテーブルを同時にクエリして更新する方法

>>:  MySQLでよく使われる演算子と関数の概要

推薦する

MySQLインストーラがコミュニティモードで実行されている場合の解決策

今日、リモートデスクトップを実行してログインしているときにこのプロンプトを見つけました「MySQL ...

MySQL の重複データの処理方法 (防止と削除)

一部の MySQL テーブルには重複レコードが含まれている場合があります。重複データが存在することを...

Linux での crontab スケジュール実行コマンドの詳細な説明

LINUX では、定期的なタスクは通常、cron デーモン プロセス [ps -ef | grep ...

CSSスクロールバーのスタイルをカスタマイズする方法の詳細な説明

この記事では、CSS スクロールバー セレクターを紹介し、Webkit ブラウザーと IE ブラウザ...

Vueでファジークエリを実装する方法の簡単な例

序文いわゆるファジークエリとは、ユーザーの完全な入力やすべての入力情報がなくてもクエリサービスを提供...

vue3を使用してAppleシステムのサイドメッセージプロンプト効果を模倣する

目次アニメーションプレビューその他のUIライブラリ始めるコンポーネントディレクトリ構造トーストおおよ...

Zabbix でフィルターを使用して監視を実装する方法

最近、監視機器の作業をしていたとき、ポートがダウンしているというアラームが常に出ていました。データを...

MySQL の最適化: サブクエリの代わりに結合を使用する

サブクエリの代わりにJOINを使用するMySQL はバージョン 4.1 以降で SQL サブクエリを...

MySQL テーブルとデータベース シャーディングのアプリケーション シナリオと設計方法

多くの友人がフォーラムやメッセージエリアで、どのような状況で MySQL をシャーディングする必要が...

Linux コマンド sort、uniq、tr ツールの詳細な説明

並べ替えツールLinux の sort コマンドは、テキスト ファイルの内容を並べ替えるために使用さ...

Linux デスクトップ用の 4 つのスキャン ツール

ペーパーレスの世界はまだ到来していませんが、書類や写真をスキャンすることで紙をなくす人が増えています...

MySQL での Truncate の使用法の詳細な説明

序文:テーブルをクリアしたいときは、truncate ステートメントをよく使用します。ほとんどの場合...

MySQL DDL による同期遅延を解決する方法

目次序文解決ツールの紹介仕組み使用制限使用上の注意使用例いくつかのパラメータの説明出力例Tencen...

...

JavaScript 開発における標準コミットメッセージの重要性の詳細な説明

目次標準コミットメッセージの重要性コミットするコミットリント依存関係をインストールする.commit...