2

STANDARD UNIX UTILITIESを使用して、標準入力から一度に1文字ずつデータを読み取り、結果を標準出力に出力するプログラムを作成するにはどうすればよいですか。この場合、Cプログラムと同じように実行されることがわかっています。これは1行のコードで実行できると言われましたが、Unixパイプラインプログラミングは実行したことがないので、興味があります. プログラムの目的は、標準入力からデータを読み取り、1行あたりの単語数を数え、標準出力で単語と行の合計数を数えることです。

次のコードを思いつきましたが、よくわかりません。

tr A-Z a-z < file | tr -sc a-z | sort uniq -c wc '\n'

どうすれば欲しいものを手に入れることができるかについての考えや提案はありますか?

4

1 に答える 1

11

wc (word count)をオプションとともに使用-wして、ファイル内または-l行の単語をカウントします。

$ cat file.txt
this file has 5 words.

$ wc -w file.txt             # Print number of words in file.txt
5 file.txt

$ wc -l file.txt             # Print number of lines in file.txt
1 file.txt

$ wc file.txt                # No option, print line, words, chars in file.txt
 1  5 23 file.txt

その他のオプションwc:

  -c, --bytes            print the byte counts
  -m, --chars            print the character counts
  -l, --lines            print the newline counts
  -L, --max-line-length  print the length of the longest line
于 2012-12-03T22:04:09.343 に答える