"Encrypting" using number replacement


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting "Encrypting" using number replacement
# 1  
Old 11-17-2011
"Encrypting" using number replacement

Hi,

I have a task of "encrypting" a file by replacing the numbers with another set of numbers. Sort of swapping the values, say:

1 = 5
2 = 8
3 = 7
4 = 1
5 = 9 and so on..

so if i have 12345, my output should be 58719.

problem is i get 98719 since after swapping 1 to 5, my sed command has yet to pass the 5 to 9 swap, so the 5 that was swapped from 1 is being swapped a second time to 9.

my test code is:
Code:
echo 12345 | sed -e 's/1/5/g;s/2/8/g;s/3/7/g;s/4/1/g;s/5/9/g;'

Is there a better solution for this?

Thanks.

Last edited by agentgrecko; 11-17-2011 at 10:43 AM..
# 2  
Old 11-17-2011
Is this homework?
# 3  
Old 11-17-2011
You can use the sed's transform feature for this...
Code:
echo 12345 | sed 'y/12345/58719/'

--ahamed
This User Gave Thanks to ahamed101 For This Post:
# 4  
Old 11-17-2011
hi zaxxon,

Nope. Just a task at work i'm having a hard time coding. Been trying with a few algorithms for the past hour or so. Just thought there might be help from others while I'm figuring it out.

Thanks.
# 5  
Old 11-17-2011
See ahamed's post above. I hope this is not being used for encrypting Smilie Having several tries you will easily guess which number translates to which so this does not really look suited for a professional environment; no offense.
This User Gave Thanks to zaxxon For This Post:
# 6  
Old 11-17-2011
Telling sed that the second number 5 is at the end of the string works:

Code:
echo 12345 | sed -e 's/1/5/g;s/2/8/g;s/3/7/g;s/4/1/g;s/5$/9/g;'

58719

Hope this helps.
This User Gave Thanks to in2nix4life For This Post:
# 7  
Old 11-17-2011
tr is much, much, much better suited for this than sed. No tricks are required to prevent repeat substitution and you feed it the sets directly.

Code:
$ echo 123456789 | tr '[12345]' '[58719]'
587196789

$

These 2 Users Gave Thanks to Corona688 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

5. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

6. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

7. Shell Programming and Scripting

replacement and "reading frames"

Hi, I'm working with DNA sequences, which as you might know are composed of "codons", which are the "words" if you like, and all codons are 3 letters long. So something I frequently need in my scripts, is pattern searching that respects this typical word size. E.g. : searching "TAC" in the... (6 Replies)
Discussion started by: jossojjos
6 Replies

8. UNIX for Dummies Questions & Answers

Vi - "The replacement pattern is too long"

Hi, I am trying to replace a value in a script with another value. I am performing a vi command from another script. vi - ${conf_path}/CANCEL_CD_PART2.txt<<! :%s/RANGE/${btch_range}/g :wq ! 'RANGE' is the current value that the parm in the other script has (PARM1=RANGE), along with... (3 Replies)
Discussion started by: hern14
3 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies
Login or Register to Ask a Question