| # | スクリプト | | 解説 |
| 1 | #! /bin/bash
| | # |
| 2 | # Text analisys
| | # |
| 3 |
| | # |
| 4 | for n in $*
| | # 引数を順に処理 |
| 5 | do
| | # |
| 6 | echo Analisis $n :
| | # ファイル名を表示 |
| 7 | wc $n |
| | # wc を実行し、awk で表示形式を変更 |
| 8 | awk '{printf "\t%5d line %10d word %10d char\n",$1,$2,$3}'
| | # |
| 9 | pr -e8 -t $n |
| | # pr を用いてタブを複数の空白に変換 |
| 10 | awk 'BEGIN{
| | # |
| 11 | nulline=0; maxline=0; minline=1000; total=0; line=0}
| | # 統計用変数の初期化 |
| 12 | {
| | # |
| 13 | strlen=length($0) ; line=line+1
| | # 文字数を strlen, 行数を line とする |
| 14 | total=total+strlen
| | # ファイル全体の総文字数を total とする |
| 15 | if (strlen==0) nulline = nulline +1
| | # 空行の数を数える |
| 16 | if (strlen>maxline) maxline=length($0)
| | # 1行あたりの最大文字数 maxline とする |
| 17 | if (strlen<maxline) minline=length($0) }
| | # 1行あたりの最小文字数 minline とする |
| 18 | END{
| | # ファイルを読み終わった時点 |
| 19 | printf "\tchar/line 0 (max)\t", maxline
| | # |
| 20 | printf "0 (min)\t", minline
| | # |
| 21 | printf "0 (ave)\t", total/line
| | # 総文字数 / 行数 をもとめる |
| 22 | printf "0 (null)\n", nulline
| | # |
| 23 | }'
| | # |
| 24 | done
| | # |