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でよく使われる演算子と関数の概要

推薦する

未来志向の総合的なウェブデザイン:プログレッシブエンハンスメント

<br />原文: プログレッシブエンハンスメントを理解するアーロン・ガスタフソン翻訳:...

MySQLのスローログの開き方と保存形式の詳細な分析

開発プロジェクトでは、MySQL のスロークエリログを通じて効率の問題のある SQL を監視できます...

jQueryメソッド属性の詳細な説明

目次1. jQueryの紹介2. jQueryセレクター2.1 5つの基本セレクタ2.2 4種類の関...

SpringBoot のパッケージ化と Docker へのアップロード、およびマルチインスタンス デプロイメントの実装に関する簡単な分析 (IDEA バージョン)

最近友人からDockerを触ったことがあるかと聞かれました。あまり自信がなかったので答えられませんで...

Linux スワップメモリ​​を拡張する方法

スワップ メモリとは、主に物理メモリが不足している場合に、システムがハード ディスク領域の一部をサー...

Vue の nextTick について話す

データが変更されても、DOM ビューはすぐには更新されません。変更直後にノードまたはその値を取得しよ...

jQuery を使用してカルーセル効果を実装する

この記事では、jQueryでカルーセルチャートを実装するための具体的なコードを参考までに共有します。...

上位Nを見つけるためのMySQLグループソートの詳細な説明

MySQLグループソートで上位Nを見つけるテーブル構造grp でグループ化し、num で並べ替えて、...

Rx レスポンシブプログラミングについての簡単な説明

目次1. 観察可能2. 高階関数3. エクスプレスボックスモデル3.1. エクスプレスボックスモデル...

CSSを使用してTDのINPUTの幅を設定する

最近、C# を使用して Web プログラムを作成していたときに、次のような問題が発生しました。 Te...

WeChatミニプログラムマップの使い方を詳しく解説

この記事の例では、WeChatアプレットマップで使用される具体的な実装コードを参考までに共有していま...

Linuxにおけるumaskコマンドの使用原理と計算方法の詳しい解説

目次umask umaskの使用法原理1. umask値2. ファイルディレクトリの最大権限3. 従...

Linux テキスト検索コマンド find の詳細な使用方法

find コマンドは主にディレクトリやファイルを検索するために使用され、一致のために複数のパラメータ...

MySQL での IN データボリュームの使用の最適化された記録

MySQL のバージョン番号は 5.7.28 です。テーブル A には 390 万件のレコードがあり...

Tomcatのサーバーオプションの詳細な説明

1. 構成デフォルトでは、最初の 2 つはチェックされていないので、チェックする必要があります。 (...