#!/bin/bash # This creates an xml OpenOffice/LibreOffice Writer file that can be used with # Avery 5167 address labels (80 labels per page). It produces two labels # per number (thus one label for each end of a cable), so each page is # enough for 40 cables. It is recommended that permanent labels be used for # network cables. # # Author: Christopher Cox # Copyright: Copyright (c) 2015, All Rights Reserved. # License: GPL v2 # usage() { echo "createcables.sh --start= [--pages=] [--prefix=]" >&2 echo "default num-pages is 1" >&1 } while [ $# -gt 0 ]; do case "$1" in -s) start="$2" shift ;; --start=*) start=`expr "$1" : '--start=\(.*\)'` ;; -n) numpages="$2" shift ;; --pages=*) numpages=`expr "$1" : '--pages=\(.*\)'` ;; -P) prefix="$2" shift ;; --prefix=*) prefix=`expr "$1" : '--prefix=\(.*\)'` ;; *) break ;; esac shift done if [ ! "$start" ]; then usage exit 1 fi numpages=${numpages:=1} echo ' 2013-10-18T14:36:382014-03-17T12:36:31PT3H41S10LibreOffice/3.5$Linux_X86_64 LibreOffice_project/350m1$Build-413 0 0 28815 16618 true false view2 3041 1212 0 0 28813 16616 0 0 false 100 false true true true false true false true true false false false false false false false false 0 true false false false false true false false false true false false true false false true true false true high-resolution 1 0 false dell3110cn01 true nwH+/2RlbGwzMTEwY24wMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpkZWxsMzExMGNuMDEAAAAAAAAAAAAAAAAAAAAWAAMAxQAAAAAAAAAIAFZUAAAkbQAASm9iRGF0YSAxCnByaW50ZXI9ZGVsbDMxMTBjbjAxCm9yaWVudGF0aW9uPVBvcnRyYWl0CmNvcGllcz0xCm1hcmdpbmRhanVzdG1lbnQ9MCwwLDAsMApjb2xvcmRlcHRoPTI0CnBzbGV2ZWw9MApwZGZkZXZpY2U9MQpjb2xvcmRldmljZT0wClBQRENvbnRleERhdGEKSW5wdXRTbG90OkRlZmF1bHQAUGFnZVNpemU6TGV0dGVyAER1cGxleDpOb25lAAASAENPTVBBVF9EVVBMRVhfTU9ERQoARFVQTEVYX09GRg== false false true false true true false false false true true false true true true false false false 0 false false ' awk -v numpages="$numpages" -v start="$start" -v prefix="$prefix" ' BEGIN { # pagenum=1; # Just because it is not quite uniform ay[0]=".2799"; ay[1]="2.3398"; ay[2]="4.3992"; ay[3]="6.4591"; pl=length(prefix); dl=6 - pl; lline=" %s%0" dl "d\n"; z=0; d=start; for (page=1; page <=numpages; page++) { for (yi=0; yi<4; yi++) { y=ay[yi]; for (xi=0; xi<20; xi++) { x=0.5 + xi*0.5; fcount=z + 1; printf("\n", fcount, page, x, y, z); printf(" \n"); for (l=1; l<=12; l++) { printf(lline, prefix, d); } printf(" \n"); printf("\n"); if (!(fcount % 2)) d++; z++; } } } }' /dev/null echo ' ' # # # 100030 # 100030 # 100030 # 100030 # 100030 # 100030 # 100030 # 100030 # 100030 # 100030 # 100030 # 100030 # #