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それを受け取ります。

おすすめ記事