Sponsored Content
Top Forums Shell Programming and Scripting [FUN] Numbers to Roman letters/num Post 302928133 by sea on Tuesday 9th of December 2014 06:31:16 AM
Old 12-09-2014
[FUN] Numbers to Roman letters/num

Heyas

Just a little fun script (code block) i'd like to share for fun.
Code:
#/bin/bash
# roman.sh
#
#	Function
#
	num2roman() { # NUM
	# Returns NUM in roman letters
	#
		input=$1	# input num
		output=""	# Clear output string
		len=${#input}	# Initial length to count down
		
		roman_val() { # NUM one five ten
		# This sub does the basic 'roman' algorythm
		#
			N=$1
			one=$2
			five=$3
			ten=$4
			out=""
			
			case $N in
			0)	out+=""	;;
			[123])	while [[ $N -gt 0 ]]
				do	out+="$one"
					N=$(($N-1))
				done
				;;
			4)	out+="$one$five"	;;
			5)	out+="$five"	;;
			[678])	out+="$five"
				N=$(($N-5))
				while [[ $N -gt 0 ]]
				do	out+="$one"
					N=$(($N-1))
				done
				;;
			9)	while [[ $N -lt 10 ]]
				do	out+="$one"
					N=$(($N+1))
				done
				out+="$ten"
				;;
			esac
			echo $out
		}
		
		while [[ $len -gt 0  ]]
		do	# There are letters to add
			num=${input:0:1}
			# Do action according position
			case $len in
			1)	# 1
				output+="$(roman_val $num I V X)"
				;;
			2)	# 10
				output+="$(roman_val $num X L C)"
				;;
			3)	# 100
				output+="$(roman_val $num C D M)"
				;;
			*)	# 1000+
				# 10'000 gets a line above, 100'000 gets a line on the left.. how to?
				num=${input:0:(-3)}
				while [[ $num -gt 0 ]]
				do	output+="M"
					num=$(($num-1))
				done
				
				;;
			esac
			input=${input:1} ; len=${#input}
		done
		echo $output
	}
#
#	Call it
#
	num2roman $1

Output:
Code:
+ ~ $ for N in 1 4 5 6 8 9 10 13 42 99 123 256 1024 2048 3999;do ./roman.sh $N;done

I
IV
V
VI
VIII
IX
X
XIII
XLII
XCIX
CXXIII
CCLVI
MXXIV
MMXLVIII
MMMCMXCIX

Hth & have fun Smilie
These 6 Users Gave Thanks to sea For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Letters, Numbers or Alphanumerical

How do I check if a variable consisted of letters, numbers or both letters and numbers? For example, I have a variable $X and I want to print "1" if it contains only letters, "2" if it contains only numbers and "3" if it contains both (2 Replies)
Discussion started by: sleepster
2 Replies

2. UNIX for Dummies Questions & Answers

Help! scrolling numbers and letters

Hello all I am a unix newbie.... I have a sun netra t1 and it is freaking out I am connected to it through a console port, and it is just spitting out a ton on numbers and letters like below its just keeps going and going. I have tried rebooting it and I cannot get it back to any kind of a... (1 Reply)
Discussion started by: intraining11
1 Replies

3. Shell Programming and Scripting

sed command, look for numbers following letters

If I have a set of strings, C21 F231 H42 1C10 1F113 and I want to isolate the ints following the char, what would the sed string be to find numbers after letters? If I do, *, I will get numbers after letters, but I am looking to do something like, sed 's/*/\t*/g' this will give me... (14 Replies)
Discussion started by: LMHmedchem
14 Replies

4. Shell Programming and Scripting

Sort roman numerals

If I use ls to print all the files of a folder, is there a way to sort using roman numerals? I am thinking about a result like: benjamin_I.wmv benjamin_II.wmv benjamin_II.wmv benjamin_III.wmv benjamin_IV.wmv benjamin_V.wmv benjamin_VI.wmv benjamin_VII.wmv benjamin_VIII.wmv... (6 Replies)
Discussion started by: locoroco
6 Replies

5. Shell Programming and Scripting

reducing values in columns with both numbers and letters

Hi, I columns with both number and letters however i need the number 4 trimmed off the lines that have 3 numbers in them so it just because the 2 preceding numbers only For example V25QG2-K18QG-V25CG2 L26HG-L17HA-L26CG I434QD1-L19HB2-I434CD1 I434QD1-A31QB-I434CD1 ... (7 Replies)
Discussion started by: olifu02
7 Replies

6. UNIX for Dummies Questions & Answers

Selective Replacements: Using sed or awk to replace letters with numbers in a very specific way

Hello all. I am a beginner UNIX user who is using UNIX to work on a bioinformatics project for my university. I have a bit of a complicated issue in trying to use sed (or awk) to "find and replace" bases (letters) in a genetics data spreadsheet (converted to a text file, can be either... (3 Replies)
Discussion started by: Mince
3 Replies

7. Shell Programming and Scripting

awk : match only the pattern string , not letters or numbers after that.

Hi Experts, I am finding difficulty to get exact match: file OPERATING_SYSTEM=HP-UX LOOPBACK_ADDRESS=127.0.0.1 INTERFACE_NAME="lan3" IP_ADDRESS="10.53.52.241" SUBNET_MASK="255.255.255.192" BROADCAST_ADDRESS="" INTERFACE_STATE="" DHCP_ENABLE=0 INTERFACE_NAME="lan3:1"... (6 Replies)
Discussion started by: rveri
6 Replies

8. Shell Programming and Scripting

Sorting mixed numbers and letters

Hello, I have a file such as this: chr1 chr2 chr1 chr2 chr3 chr10 chr4 chr5 chrz chr1AI want to sort it, I use this command: sort -k1 -th -n testfilebut I get this output, how can I fix this? chr1 chr1 chr10 chr1A chr2 chr2 (3 Replies)
Discussion started by: Homa
3 Replies

9. UNIX for Dummies Questions & Answers

sed - extract a group of Letters/numbers

I have a file with hundreds of lines in it. I wanted to extract anything that matches the following: KR followed by 4 digits: example KR1201 cat list | sed "s///g" Is the closest I've come, and obviously it is not what I want. This would remove all of the items that I want and leave me... (2 Replies)
Discussion started by: newbie2010
2 Replies

10. UNIX for Beginners Questions & Answers

Decimal numbers and letters in the same collums: round numbers

Hi! I found and then adapt the code for my pipeline... awk -F"," -vOFS="," '{printf "%0.2f %0.f\n",$2,$4}' xxx > yyy I add -F"," -vOFS="," (for input and output as csv file) and I change the columns and the number of decimal... It works but I have also some problems... here my columns ... (7 Replies)
Discussion started by: echo manolis
7 Replies
T1UNMAC(1)						      General Commands Manual							T1UNMAC(1)

NAME
t1unmac - translate a Mac PostScript Type 1 font into PFA or PFB format SYNOPSIS
t1unmac [-a|-b] [-r] [input [output]] DESCRIPTION
t1unmac extracts POST resources from a Macintosh PostScript font file and creates a PFA (hexadecimal) or PFB (binary) font file. The file input should be in MacBinary I or II, AppleSingle, AppleDouble, or BinHex format, or it can be a raw resource fork. If the file is a raw resource fork, you need to give the `--raw' option; otherwise t1unmac should automatically figure out what kind of file you have. If the file output is not specified output goes to the standard output. OPTIONS
--pfa, -a Output in PFA (ASCII) format. --pfb, -b Output in PFB (binary) format. This is the default. --raw, -r Indicates that the input is a raw resource fork. --macbinary Indicates that the input is in MacBinary I or II format. --applesingle Indicates that the input is in AppleSingle format. --appledouble Indicates that the input is in AppleDouble format. --binhex Indicates that the input is in BinHex 4.0 format. --block-length=num, -l num PFB only: Set the maximum output block length to num. The default length is as large as memory allows. --line-length=num, -l num PFA only: Set the maximum length of encrypted lines in the output to num. (These are the lines consisting wholly of hexadecimal dig- its.) The default is 64. EXAMPLES
On Mac OS X, you can use t1unmac to translate a font into PFA or PFB format as follows: % t1unmac --raw FONTFILENAME/..namedfork/rsrc > OUTPUT SEE ALSO
t1mac(1), t1ascii(1), t1binary(1), t1asm(1), t1disasm(1) AUTHORS
Lee Hetherington (ilh@lcs.mit.edu) Eddie Kohler (ekohler@gmail.com) Ported to Microsoft C/C++ Compiler and MS-DOS operating system by Kai-Uwe Herbing (herbing@netmbx.netmbx.de). Version 1.37 T1UNMAC(1)
All times are GMT -4. The time now is 05:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy