Bash で山括弧を使用するその他の方法

Bash で山括弧を使用するその他の方法

序文

この記事では、山括弧のその他の用途をさらに詳しく見ていきます。

前回の記事では、山括弧 (<>) とその使用例をいくつか紹介しました。この記事では、山括弧のその他の用途をさらに詳しく見ていきます。

< を使用すると、「ごまかし」効果が得られ、他のコマンドにコマンドの出力がファイルであると思わせることができます。

たとえば、ファイルをバックアップするときに、バックアップが完了したかどうかわからない場合は、元のディレクトリからコピーされたすべてのファイルがディレクトリにすでに含まれているかどうかを確認する必要があります。これを試すことができます:

差分 <(ls /オリジナル/dir/) <(ls /バックアップ/dir/)

diff コマンドは、2 つのファイルの違いを行ごとに比較するためのツールです。上記の例では、< は diff に 2 つの ls コマンドの出力結果をファイルであると認識させ、それらの差異を比較できるようにするために使用されています。

< と (...) の間にスペースがないことに注意してください

上記のコマンドをイメージ ディレクトリとそのバックアップ ディレクトリで実行してみたところ、出力は次のようになりました。

差分 <(ls /My/Pictures/) <(ls /My/backup/Pictures/)
5d4 < Dv7bIIeUUAAD1Fc.jpg:大きい.jpg

出力内の < は、ファイル Dv7bIIeUUAAD1Fc.jpg:large.jpg が左側のディレクトリ (/My/Pictures) に存在するが、右側のディレクトリ (/My/backup/Pictures) には存在しないことを示しています。つまり、バックアップ プロセス中に問題が発生し、ファイルが正常にバックアップされなかった可能性があります。 diff で出力が表示されない場合は、2 つのディレクトリ内のファイルは同一です。

これを見ると、< を使用して、ファイル形式を受け入れる必要のあるコマンドに、一部のコマンド ラインの出力内容をファイルとして提供できるため、前の記事の「お気に入りの俳優の並べ替え」の例では、いくつかの中間ステップをスキップして、出力内容に対して直接並べ替え操作を実行できると考えるかもしれません。

実際、この例は次のように簡略化できます。

sort -r <(while read -r name surname films;do echo $films $name $surname ; done < CBactors)

ここで文字列

また、山括弧のリダイレクト機能を使用する別の方法もあります。

変数を渡すために echo とパイプ (|) を使用する方法は、誰もがよく知っていると思います。文字列変数をすべて大文字に変換する場合は、次のようにします。

myvar="Hello World" echo $myvar | tr '[:lower:]' '[:upper:]' HELLO WORLD

tr コマンドは文字列を特定の形式に変換できます。上記の例では、tr を使用して文字列内のすべての小文字を大文字に変換しています。

この転送プロセスの焦点は変数ではなく、変数の値、つまり文字列 Hello World であることを理解することが重要です。このような文字列は HERE 文字列と呼ばれ、「これは処理する文字列です」という意味です。ただし、上記の例では、次のように、より直感的な方法で処理することもできます。

tr '[:lower:]' '[:upper:]' <<< $myvar

このショートカットでは、エコーやパイプを使用する必要はなく、代わりにこれまで説明してきた山括弧を使用します。

要約する

これら 2 つの単純な記号 < と > を使用すると、非常に多くのことが達成できることがわかります。Bash は、作業の柔軟性を高めるために、ここでも多くのオプションを提供します。

もちろん、Bash コマンドにさらなる利便性をもたらすシンボルは他にもたくさんあるので、紹介はまだ終わりではありません。しかし、それらを完全に理解していないと、記号だらけの Bash コマンドは意味不明なものにしか見えません。今後もこのような Bash シンボルについてさらに詳しく説明していきますので、また次回お会いしましょう。

さて、以上がこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただきありがとうございます。

以下もご興味があるかもしれません:
  • Bash の山括弧の深い理解 (初心者向け)
  • Bash スクリプトで括弧とバッククォートを使用する

<<:  jsを使用してサーバーに写真をアップロードする

>>:  JavaScript はチェックボックスの選択機能を実装します

推薦する

CSS3 アニメーション ボールローリング JS コントロールアニメーション一時停止

CSS3 はアニメーションを作成でき、多くの Web ページのアニメーション画像、Flash アニメ...

Vueの使用に関する深い理解

目次Vueのコアコンセプトを理解するVueの双方向バインディングの原理と実装を探るVue 双方向バイ...

ミニプログラム録画機能の実装

序文ミニプログラムを開発する過程では、録音機能を実装し、録音を再生し、録音をサーバーにアップロードす...

アクセス速度を上げるためにウェブサイトを最適化する方法の更新

最近、同社はitpubを皮切りに、コーポレートウェブサイト傘下の全サイトの評価を開始した。そのために...

MySql 8.0.11-Winxp64 (無料インストール版) ​​設定チュートリアル

1. インストールディレクトリにzipパッケージを解凍します。まず、mysql-8.0.11-win...

Nodejs は JSON 文字列を JSON オブジェクトに変換するエラー解決法

JSON 文字列を JSON オブジェクトに変換するにはどうすればいいですか? JSON.parse...

CSSアニメーション属性キーフレームの詳細な説明

コラムを更新してからどれくらい経ったでしょうか?半年ですか?今年の後半は、まさに離陸、つまり文字通り...

Dockerのyumソースの設定とCentOS7へのインストールの詳細な説明

ここではCentOS7が使用されており、カーネルバージョンは [root@localhost ~]#...

MySQLクエリ制御ステートメントの詳細なグラフィック説明

mysql クエリ制御ステートメントフィールド重複排除 **キーワード: 明確** 構文: テーブル...

ドラッグ効果を実現するための純粋なCSSコード

目次1. ドラッグ効果の例2. CSS実装の原則3. CSS実装の詳細4. CSSレイアウト1. 固...

CSS ボーダーは四隅の実装コードを追加します

1.html <div class="ログインボディ"> <...

Linux コマンドラインのワイルドカードとエスケープ文字の実装

ハードディスクのファイル属性のバッチ表示など、特定の種類のファイルに対してバッチ操作を実行する場合、...

Vueは画像のドラッグアンドドロップ機能を実装します

この記事の例では、画像のドラッグアンドドロップ機能を実現するためのVueの具体的なコードを参考までに...

Dockerコンテナは定期的にデータベースをバックアップし、指定されたメールボックスに送信します(設計アイデア)

目次1. 背景: 2. デザインのアイデア: 3. 起動スクリプトを書く4. イメージを構築する5....

CSS 表示テーブルの適応的な高さと幅の問題の解決策

定義と使用法display プロパティは、要素が生成するボックスのタイプを指定します。例示するこの属...