Sponsored Content
Top Forums Shell Programming and Scripting [FUN] Numbers to Roman letters/num Post 302928156 by sea on Tuesday 9th of December 2014 11:56:55 AM
Old 12-09-2014
Now it handles numbers up to 99999 Smilie
4000 in roman numerals please helped me a bit, probaly i just overread the related parts on the wiki page Smilie
Added:
Code:
		U="\033[4m"	# Underscore, multiplies with 1000
		R="\033[0m"	# Resets the underscore

and changed to:
Code:
			4)	output+="$(roman_val $num M ${U}V${R} ${U}X${R})"	;;
			5)	output+="$(roman_val $num ${U}X${R} ${U}L${R} ${U}C${R})"	;;
			*)	# Fallback 'failsafe'.. actualy just beeing lazy to handle higher numbers properly... 99999 is enough
				num=${input:0:(-3)}
				while [[ $num -gt 0 ]]
				do	output+="M"
					num=$(($num-1))
				done
				;;
			esac

So the output is now:
Code:
~/roman.sh 3999 4500 11600 99000

MMMCMXCIX
MVD
XMDC
XC

Have a nice evening Smilie

Last edited by sea; 12-09-2014 at 01:06 PM..
 

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
Roman(3pm)						User Contributed Perl Documentation						Roman(3pm)

NAME
Text::Roman - Allows conversion between Roman and Arabic algarisms. SYNOPSIS
use Text::Roman qw/ isroman roman2int int2roman ismilhar milhar2int roman mroman2int ismroman /; print int2roman(123); $roman = "XXXV"; print roman2int($roman) if isroman($roman); $milhar = 'L_X_XXIII'; # = 60,023 print milhar2int($milhar) if ismilhar($milhar); DESCRIPTION
This package supports both conventional Roman algarisms (which range from 1 to 3999) and Milhar Romans, a variation which uses a bar across the algarism to indicate multiplication by 1,000. For the purposes of this module, acceptable syntax consists of an underscore suffixed to the algarism e.g. IV_V = 4,005. The term Milhar apparently derives from the Portuguese word for "thousands" and the range of this notation extends the range of Roman numbers to 3999 x 1000 + 3999 = 4,002,999. Note: the functions in this package treat Roman algarisms in a case-insensitive manner such that "VI" == "vI" == "Vi" == "vi". The following functions may be imported into the caller package by name: isroman Tests a string to be a valid Roman algarism. Returns a boolean value. int2roman Converts an integer expressed in Arabic numerals, to its corresponding Roman algarism. If the integer provided is out of the range expressible in Roman notation, an undef is returned. roman2int Does the converse of int2roman(), converting a Roman algarism to its integer value. ismilhar Determines whether a string qualifies as a Milhar Roman algarism. milhar2int Converts a Milhar Roman algarism to an integer. ismroman mroman2int roman These functions belong to the module's old interface and are considered deprecated. Do not use them in new code and they will eventually be discontinued; they map as follows: ismroman => ismilhar mroman2int => milhar2int roman => int2roman CHANGES
Some changes worth noting from this module's previous incarnation: namespace imports The call to use must now explicitly request function names imported into its namespace. argument defaults/void context All functions now will operate on $_ when no arguments are passed, and will set $_ when called in a void context. This allows for writing code like: @x = qw/V III XI IV/; roman2int() for @x; print join("-", @x); instead of the uglier: @x = qw/V III XI IV/; $_ = roman2int($_) for @x; print join("-", @x); SPECIFICATION
Roman algarisms may be described using the following BNF-like formula: a = I{1,3} b = Va?|IV|a e = X{1,3}?|X{0,3}IX| ee = IX| f = Le?|XLee?|e g = C{1,3}f?|C{0,3}XCee?|f gg = XCee?|f h = Dg?|CDgg?|g j = M{1,3}h?|M{0,3}CMgg?|h REFERENCES
For a description of the Roman numeral system see: http://www.novaroma.org/via_romana/numbers.html. A reference to Milhar Roman alagarisms (in Portuguese) may be found at: http://www.estado.estadao.com.br/redac/norn-nro.html. AUTHOR
Erick Calder <ecalder@cpan.org> ACKNOWLEDGEMENTS
This module was originally written by Peter de Padua Krauss <krauss@ifqsc.sc.usp.br> and submitted to CPAN by Stanislaw Pusep <stanis@lin- uxmail.org> who has relinquished control to me since the original author has never maintained it and can no longer be reached. I have completely rewritten the module, implementing simpler algorithms to perform the same functionality, adding a test suite, a Changes file, etc. and providing more comprehensive documentation. AVAILABILITY + SUPPORT For questions, comments and support please feel free to e-mail me. This module may be found on the CPAN. Additionally, both the module and its RPM package are available from: http://perl.arix.com DATE
$Date: 2003/01/16 01:56:34 $ VERSION
$Revision: 3.3 $ perl v5.8.8 2007-06-15 Roman(3pm)
All times are GMT -4. The time now is 08:57 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy