Revision: 3128
Updated Code
at June 6, 2007 01:42 by abhiomkar
Updated Code
#!/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
Revision: 3127
Updated Code
at June 6, 2007 01:37 by abhiomkar
Updated Code
#!/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}' dmsg` $FILENAME
;;
-l|--max-line-length)
echo `awk -F '\n' 'BEGIN {L=0} {if(length($1)>L) L=length($1)} END {print L}'` $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
Revision: 3126
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at June 6, 2007 01:01 by abhiomkar
Initial Code
#!/bin/bash
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
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
;;
*)
echo "Usage: awc [-l][-c] filename"
exit 1
;;
esac
Initial URL
Initial Description
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"
Initial Title
Implementing wc using awk (without using wc)
Initial Tags
Initial Language
Bash