/ Published in: Bash
Usage: awc [OPTION]... [FILE]...
Print newline, word, and byte counts for a FILE
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
-w, --words print the word counts
--help display this help and exit
--version output version information and exit"
Print newline, word, and byte counts for a FILE
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
-w, --words print the word counts
--help display this help and exit
--version output version information and exit"
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#!/bin/bash # Author : Abhinay Omkar (c) 2007 # Description : wc using awk. without using wc. # License : GPLv2 # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. # There is NO WARRANTY, to the extent permitted by law. # # Copyright (C) 2007 Free Software Foundation, Inc. case $1 in -*) OPTION=$1 FILENAME=$2 ;; *) FILENAME=$1 OPTION=$2 ;; esac #Count number of lines: #awk -F '\n' 'BEGIN {n=0} {++n} END {print n}' dmsg #Count number of chars: #awk -F '\n' 'BEGIN {c=0} {if(c==0) c=length($1); else c+=length($1)} END {print c}' dmsg #+ #awk -F '\n' 'BEGIN {b=0} /^$/ {++b} END {print b}' dmsg #+ #awk -F '\n' 'BEGIN {nb=0} !/^$/ {++nb} END {print nb}' dmsg #Count number of words: #awk 'BEGIN {w=0} {OFS="[:blank:]+"; if(w==0) w=NF; else w+=NF} END {print w}' dmsg #Longest line in a file: #awk -F '\n' 'BEGIN {L=0} {if(length($1)>L) L=length($1)} END {print L}' dmsg case $OPTION in -l|--lines) echo `awk -F '\n' 'BEGIN {n=0} {++n} END {print n}' $FILENAME` $FILENAME ;; -c|-m|--chars|--bytes) echo `expr \`awk -F '\n' 'BEGIN {c=0} {if(c==0) c=length($1); else c+=length($1)} END {print c}' $FILENAME\` + \`awk -F '\n' 'BEGIN {b=0} /^$/ {++b} END {print b}' $FILENAME\` + \`awk -F '\n' 'BEGIN {nb=0} !/^$/ {++nb} END {print nb}' $FILENAME\`` $FILENAME ;; -w|--words) echo `awk 'BEGIN {w=0} {OFS="[:blank:]+"; if(w==0) w=NF; else w+=NF} END {print w}' $FILENAME` $FILENAME ;; -L|--max-line-length) echo `awk -F '\n' 'BEGIN {L=0} {if(length($1)>L) L=length($1)} END {print L}' $FILENAME` $FILENAME ;; -v|--version) echo "wc using awk. without using wc. This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law. Copyright (C) 2007 Free Software Foundation, Inc. Written by Abhinay Omkar" ;; *) echo "Written by Abhinay Omkar Usage: awc [OPTION]... [FILE]... Print newline, word, and byte counts for a FILE 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 -w, --words print the word counts --help display this help and exit --version output version information and exit" exit 1 ;; esac