Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ################# this script creates an outfile with "val" number of lines of digits with the columns aligned . val can be set to what you want
- ################# but formating only works to 999 so far , but its eay to extend,
- ################# WARNING: you will still need to edit the outfile to add or remove the final last digits to the desired final number
- ################# since this script cant perfectly write to 64,128,256,512... and such
- ################# mike , undergrad, friday,4th,2011.
- ################# hope it makes your work easier!!
- if [ $# -eq 0 ]
- then
- echo " "
- fi
- myarray=(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20)
- count=0
- n=0
- val=25 ######### change this to the number of lines you want ie if 1..50 , val~3 since there are
- ######### roughly five lines of digits
- echo -n " even or odd ? "
- read -e TYPE
- if [ "$TYPE" = "even" ]
- then let type=2
- else let type=1
- fi
- tens=99
- hundreds=999 ######### you would need to add other variables like this to extend column alignment to greater than 999
- i=0
- if [ "$type" -eq 2 ]; then ########### for the even list of digits
- echo >> outfile$type
- for i in ${myarray[@]}
- do
- if (( ("$i" % 2) == "0" )); then
- sed '$s/$/ '$i'/' -i outfile$type
- # echo $i
- if [ "${myarray[$i]}" -gt "10" ] ; then
- sed '$s/$/ /' -i outfile$type
- else sed '$s/$/ /' -i outfile$type ######this adjusts the space between the ones digits , space is added or removed bbetween the forward slashes
- fi
- fi
- done
- echo >> outfile$type
- while [ $n -le $val ]
- do
- for i in ${myarray[@]}
- do
- myarray[$count]=`expr $i + 20`
- ((count++))
- done
- count=0
- for i in ${myarray[@]}
- do
- if (( ("$i" % 2) == "0" )) ; then ################ check if its odd or even
- sed '$s/$/ '$i'/' -i outfile$type
- if [ "${myarray[0]}" -le "$tens" ] ; then
- sed '$s/$/ /' -i outfile$type ######### this adjusts space between the tens digits to be aligned with the ones digits
- elif [ "${myarray[0]}" -le "$hundreds" ]; then
- sed '$s/$/ /' -i outfile$type ######### this adjusts the space between the hundreds digits to be aligned with the ones & tens
- ######## you would add such elifs from here to extend the column alignment beyond 999
- else
- sed '$s/$/ /' -i outfile$type ######## adjusts space after hundreds
- fi
- fi
- done
- echo >> outfile$type
- let n++
- done
- else ############## for odd numbers
- echo >> outfile$type
- for i in ${myarray[@]}
- do
- if (( ("$i" % 2) != "0" )); then
- sed '$s/$/ '$i'/' -i outfile$type
- if [ "${myarray[$i]}" -gt "10" ]; then
- sed '$s/$/ /' -i outfile$type
- else sed '$s/$/ /' -i outfile$type ######this adjusts the space between the ones digits , space is added or removed bbetween the forward slashes
- fi
- fi
- done
- echo >> outfile$type
- while [ $n -le $val ]
- do
- for i in ${myarray[@]}
- do
- myarray[$count]=`expr $i + 20`
- ((count++))
- done
- count=0
- for i in ${myarray[@]}
- do
- if (( ("$i" % 2) != "0" )) ; then ################ check if its odd or even
- sed '$s/$/ '$i'/' -i outfile$type
- if [ "${myarray[0]}" -le "$tens" ] ; then
- sed '$s/$/ /' -i outfile$type ######### this adjusts space between the tens digits to be aligned with the ones digits
- elif [ "${myarray[0]}" -le "$hundreds" ]; then
- sed '$s/$/ /' -i outfile$type ######### this adjusts the space between the hundreds digits to be aligned with the ones & tens
- ######## you would add such elifs from here to extend the column alignment beyond 999
- else
- sed '$s/$/ /' -i outfile$type ######## adjusts space after hundreds
- fi
- fi
- done
- echo >> outfile$type
- let n++
- done
- fi
- this is the error message thought the script does what its intended to do:
- ./Onetofive: line 40: [: : integer expression expected
- funny thing is that it only gives the error message when i choose the "even"
- choice , but still does what its intended, the "odd" does not give any error message
- i'v highlighted line 40
- here is what it gives with "set -x"
- + ./Onetofive
- even or odd ? even
- ./Onetofive: line 40: [: : integer expression expected
- ++ echo -ne '\033]0;mike@localhost:~/work/worksub/scripts'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement