Linux でテキストを表示するためのヒント (非常に実用的!)

Linux でテキストを表示するためのヒント (非常に実用的!)

序文

日常の開発では、サーバー上でさまざまなテキストやログの表示操作を実行する必要があることがよくあります。この記事では、主によく使用されるテキストとログの表示スキルを要約してまとめ、後で表示して使用できるように収集できるようにします。

ログ情報を表示するtailコマンド

リアルタイム監視ログ:

tail -f ファイル名

10 行のログ情報をリアルタイムで監視:

tail -10f ファイル名

ログの最後にあるログ情報の最後の 100 行を表示します。

tail -n 100 ファイル名

100 行目以降のログ情報を表示します。

tail -n +100 ファイル名

テキスト情報を表示するためのheadコマンド

最初の 100 行のテキストを表示します。

head -n 100 ファイル名

最後の100行のテキストを表示する

head -n -100 ファイル名

テキスト情報を表示するcatコマンド

すべてのテキストコンテンツを表示

cat ファイル名

テキストの途中にある特定の行範囲の内容を表示します。たとえば、テキスト ファイルの 100 行目から 120 行目の内容を表示します。

cat -n ファイル名 |tail -n +100|head -n 20

ただし、個人的には、このコマンドを使用してテキストを検索して表示するのは、表示が面倒すぎるため好きではありません。記事の下に、より簡単なコマンド操作があります。

tacViewテキスト情報

これは cat コマンドと少し逆です。cat コマンドはテキストの内容を最初から最後まで表示しますが、tac コマンドはログの内容をテキストの最後から最初まで表示します。

tacファイル名

たとえば、cat コマンドと tac コマンドを使用して、同じコンテンツを同時に表示します。

異なるコマンドを使用してテキストを表示すると、テキスト コンテンツの順序が逆になることがわかります。

テキストコンテンツを検索

grep は、正規表現を使用してテキストを検索し、一致する行を出力できる強力なテキスト検索ツールです。

grep コマンドのよく使われる方法:

複数のファイルで検索:

grep "match_pattern" file_1 file_2 file_3 ...

マーカーマッチングカラー --color=auto オプション:

grep "match_pattern" ファイル名 --color=auto 

//[ここでのカラー項目は、ドキュメントの説明に応じて選択できます: always、never、auto]

-v オプションを除くすべての行を出力するには:

grep -v "match_pattern" ファイル名

正規表現 -E オプションを使用します。

grep -E "[1-9]+"

一致するコンテンツオプションのみを出力します:

grep -o -E "[az]+." 行

ファイルまたはテキスト内で一致する文字列を含む行数をカウントします -c オプション:

grep -c "テキスト" ファイル名

一致する文字列を含む行の数を出力します -n オプション:

grep "テキスト" -n ファイル名

grep コマンドが実現できる機能を理解すると、実際の作業で柔軟に使用できるようになります。

場合によっては、特定の期間のログ情報を表示する必要があることがあります。この場合、grep コマンドを使用してこの機能を実現できます。たとえば、2019 年 8 月 6 日の 22:00 から 1 時間以内のログ情報を表示する場合は、次のコマンドを入力します。

 grep '2019-08-06 22' ファイル名

これにより、表示したい情報の範囲をすばやく見つけることができます。

grep コマンドは標準入力データを受け取ることができるため、通常はパイプ コマンド シンボル "|" を使用して標準出力で検索操作を実行できます。

たとえば、次のコマンドに示すように、最初にファイルの内容を読み取り、次にコンテンツ フィルタリング用のパイプラインを使用してその内容を grep に転送します。

cat log.file |grep -n '2019-08-06 22:43'

grep コマンドを使用するだけでなく、sed コマンドを使用して対応する効果を実現することもできます。

sed は、ファイル (または入力) を行ごとに処理し、結果を画面に送信する非対話型エディターです。

初心者にとっては、概念を説明するよりも、実用的な例をいくつか挙げる方が直接的かもしれません。

sed コマンドのよく使われるメソッド:

ファイルの最初の行のみを印刷する

sed -n '1p' ファイル名

ファイルの1行目から10行目までの内容を表示します

sed -n '1,10p' ファイル名

テキストの最初の行を削除する

sed '1d' ファイル名

テキスト内の特定の文字列を置き換える

sed 's/目的のコンテンツ/置換されたコンテンツ/g'
例えば、sed 's/1/one /g' filenameは1をoneに置き換えます。

sed コマンドの基本的な使い方を理解した後は、実際の作業シナリオで何度も使用して、sed コマンドの理解を深めることができます。

たとえば、2019-08-06 22:43-22:44 間のログ レコードを表示するなど、日付範囲を指定するには、sed コマンドを使用します。

sed -n '/2019-08-06 22:43/,/2019-08-06 22:44/p' ファイル名

前述のように、ログファイルの特定のセクションを表示するには、head コマンドと tail コマンドを併用できますが、この操作は少し面倒です。sed コマンドを使用して操作を実行してみてください。

たとえば、ログの 1 行目から 20 行目までを確認します。

 nl ログファイル | sed -n '1,10p' 

ページをめくるにはmoreコマンドを使用します

表示するログ ファイルが大きすぎる場合は、more コマンドを使用してページ内を検索できます。たとえば、各ページに 10 個のデータ情報が表示されるように設定します。

ファイル名 -10 以上

more コマンドを使用すると、各ページに表示されているデータを表示でき、スペースバーを押すと次のページにジャンプできます。同時に、現在読んでいるテキストコンテンツの基本的な進行状況もウィンドウに表示されます。

ここまで説明してきたので、いくつかの操作シナリオをシミュレートしてみましょう。

キーワード「test」の最後の出現のログ記録を表示します。

 grep 'test' -A 10 log.file | tail -n 11

ここでは、grep コマンドのいくつかのパラメータの意味を理解する必要があります。

  • grep 'name' -A 10 は一致する内容とそれに続く10行を表示します。
  • grep 'name' -B 10 は一致する内容とその前の10行を表示します。
  • grep 'name' -C 10 は一致する内容とその前後10行を表示します。

tail -n 11 コマンドは、現在の 10 行と一致する行を表示します。

ログ内のキーワード「test」を含む行の数を数えるだけです

対応するコマンド:

grep 'テスト' ./log.file |wc -l

ここでは、まずテキスト コンテンツを標準出力に出力し、次にパイプを使用してデータ情報を wc コマンドに渡して統計情報を取得します。

wcコマンドのよく使われるパラメータ

-l 一致する行数
-w 一致する単語の数
-m 一致する文字数

Linux でテキスト情報を表示するテクニックは、この記事で紹介したものよりもはるかに多くあります。そのため、実際の作業では、作業効率の向上に役立つテクニックをさらにまとめ、まとめることもできます。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • 1日1シェルコマンド Linuxテキストコンテンツ操作シリーズ - awkコマンド詳細説明
  • 一日一シェルコマンド Linuxテキストコンテンツ操作シリーズ - cutコマンド詳細説明
  • Linux 正規表現を使用してファイル内のテキストを柔軟に検索する
  • 1日1シェルコマンド Linuxテキスト操作シリーズ - touchコマンドの使い方
  • 1日1シェルコマンド Linuxテキスト操作シリーズ - head、tailコマンド詳細説明
  • 1日1シェルコマンド Linuxテキスト操作シリーズ - diffコマンドの詳しい説明
  • 1日1シェルコマンド Linuxテキストコンテンツ操作シリーズ - grepコマンド詳細説明
  • Linuxでテキストエディタviを使用するための一般的なコマンド
  • LinuxテキストファイルとWINテキストファイルの改行形式変換コマンドの詳しい説明
  • 1日1シェルコマンド Linuxテキスト操作シリーズ - wcコマンドの詳しい説明

<<:  Vueのsync修飾子の詳細な説明

>>:  MySQL8 でパスワードを忘れた後にパスワードをリセットする方法 (MySQL の古い方法は機能しません)

推薦する

Vue での this.$set の動的データバインディングのケーススタディ

インターネット上の this.$set の説明はわかりにくいと感じます。単一データ、オブジェクト、配...

Vueパンくずコンポーネントのカプセル化方法

Vueはパンくずコンポーネントをカプセル化して参照します。具体的な内容は次のとおりです。効果を達成す...

UrlRewriter のキャッシュ問題と関連する一連の調査

ウェブサイト機能を開発する場合、セッション キャッシュを時間内にクリアできません。一連の探索が始まり...

MySQL 4 の一般的なマスタースレーブレプリケーションアーキテクチャ

目次1つのマスターと複数のスレーブのレプリケーションアーキテクチャマルチレベルレプリケーションアーキ...

nacos が mysql に接続できない場合の解決策

理由nacos の pom が依存する mysql バージョンが、mysql バージョンと一致してい...

Gitコミットログの変更方法のまとめ

ケース1: 最後の提出とプッシュなし次のコマンドを実行します。 git コミット --amend g...

JavaScript 型検出方法の例のチュートリアル

序文JavaScriptはWebフロントエンドで広く使われている言語の一つであり、Webアプリケーシ...

Vue で 3D タグ クラウドを実装するための詳細なコード

プレビュー: コード:ページセクション: <テンプレート> <div class=...

Vueコンポーネントの7つの通信方法についての深い理解

目次1. props/$emit導入コードサンプル2.Vスロット導入コードサンプル3.$refs/ ...

MySQL の JSON 挿入の問題

MySQL 5.7.8 以降では、JSON テキストでデータを効率的に取得できるネイティブ JSON...

JavaScript の navigator.userAgent がブラウザ情報を取得するケースの説明

ブラウザはおそらく私たちにとって最も馴染みのあるツールです。 Firefox、Opera、Safar...

オーディオマニアにアピールするオーディオビジュアルLinuxディストリビューション

私は最近、多くの音楽に特化した Linux ディストリビューションの 1 つである Audiovis...

Win10 MySQLでCSVをエクスポートする2つの方法

Win10 で csv をエクスポートする方法は 2 つあります。1 つ目はツールを使用することです...