44 lines
755 B
Bash
44 lines
755 B
Bash
|
#! /bin/bash
|
||
|
|
||
|
##
|
||
|
##
|
||
|
|
||
|
if test "x$1" = "x-h" ; then
|
||
|
1>&2 echo "Usage: "
|
||
|
1>&2 echo " $0 [filename]"
|
||
|
1>&2 echo "Read words from input, treating all whitespace like,"
|
||
|
1>&2 echo "and write exactly N words per line on output."
|
||
|
1>&2 echo "Options: "
|
||
|
1>&2 echo " -n [N] specify N (default: 1)"
|
||
|
1>&2 echo " filename = '-' or '' ==> read from standard input"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
: ${wordmax:=1}
|
||
|
files=""
|
||
|
|
||
|
|
||
|
while test -n "$*" ; do
|
||
|
this=$1 ; shift
|
||
|
case $this in
|
||
|
-n) wordmax=$1 ; shift
|
||
|
;;
|
||
|
*) files="$files $this"
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
|
||
|
awk '{
|
||
|
for (ii = 1; ii <=NF; ii++) {
|
||
|
printf ("%s", $ii);
|
||
|
words++;
|
||
|
if (words >= wordmax) {
|
||
|
print "";
|
||
|
words = 0;
|
||
|
} else {
|
||
|
printf (" ");
|
||
|
}
|
||
|
}
|
||
|
}' wordmax=$wordmax $files
|