FILEパラメーターを持たないwcコマンド(標準入力から読み取る)

FILEパラメーターを持たないwcコマンド(標準入力から読み取る)

(単語数)コマンドに関してwc...次の内容を理解しようとしています(man wc以下で引用し、質問の最後に長い引用を追加しました)。

FILE がない場合、または FILE が - の場合、標準入力を読み込みます。

これは正確にどのように機能しますか? 「標準入力」はいつ入力しますか?

オンラインで説明を見つけることは非常に混乱しています。おそらく、stdinそれが正確に何であるかに関するいくつかの基本情報がありません。

~からman wc

SYNOPSIS 
     wc [OPTION]... [FILE]... wc [OPTION]... --files0-from=F
         
DESCRIPTION 
     Print newline, word, and byte counts for each FILE, and a total
     line if more than one FILE is specified. A word is a
     non-zero-length sequence of characters delimited by white space.
         
     With no FILE, or when FILE is -, read standard input.

答え1

wc-、このプログラムは、コマンドラインにファイル名がゼロまたは " "のみがある場合を検出します。

wc
wc -

そしてこのような場合にはSTDIN-(プロセスのストリーム 0) から読み込みます。 「stdinに入力」する必要はありません。

プロセスを作成したプロセスである「親プロセス」は、3つのI/Oストリームの設定を担当します。

0 STDIN - program input
1 STDOUT - normal program output
2 STDERR - error program output

STDIN必要に応じてプログラムから読みます。

wc標準入力ストリームで読み取りを使用する例:

$ echo 'hello world' | wc
      1       2      12

ここでは、wc標準入力ストリームに到達した行、単語、および文字数が計算されます。このストリームは、echoシェルを介してコマンドの標準出力ストリームにパイプされます。このechoコマンドは文字列をhello world標準出力ストリームに送信し、wcそれを受け取ります。

答え2

ctrl+d私の問題は、「終了ターミナル行の入力」(入力テキストを入力した後)を使用することに慣れていないことです。

私はこれがコマンドラインの使用の基本だと思います。しかし、マニュアルページを読んで、wcコマンドを広く使用する方法を検索しても、それはわかりません。

他の混乱した初心者のためのステップは次のとおりです。

端末を入力しwc -てをクリックしますENTER

これで入力を開始できます。

完了したら、[次へ]を押します。ctrl+d

関連情報