Decoding a string


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Decoding a string
# 15  
Old 03-19-2012
Hi all,
as per my requirement i have splited the input into two parts:
Code:
############################RunLength_Decode###################################
#
#Implementatin of RunLength Decoding
#Written on:19March 11AM
#Author:Pandeeswaran
###############################################################################
#!/bin/bash
len=`echo $1|wc -c`
a=$1
for((i=0;i<=$len-1;i++))
do
ch=${a:$i:1}
if [[ "${ch}" =~ [0-9] ]];
then
res=`echo $res,${ch}`
else
res=`echo "$res",`
fi
done
Runs=`echo $res|sed -e "s/^,//"|tr -s ,|sed -e "s/.$//"`
echo $Runs
for((i=0;i<=$len-1;i++))
do
ch=${a:$i:1}
if [[ "${ch}" =~ [a-z] ]];
then
e=`echo $e,${ch}`
else
e=`echo "$e",`
fi
done
alph=`echo $e|sed -e "s/^,//"|tr -s ,|sed -e "s/.$//"|sed -e "s/,//"`
echo $alph

pandeeswaran@ubuntu:~/training$ bash RunLength_decode 3a4b3x3e
3,4,3,3
a,b,x,e
pandeeswaran@ubuntu:~/training$

Now i need to get "aaabbbbxxxeee".
How to proceed further? please guide me.
Thanks
# 16  
Old 03-19-2012
Your code takes 0.02s on my machine!! I'm working on a server having 6 quad core cpu's each clocking 2.4 GHz and running on RHEL.

Try this. I don't claim it to be the most efficient. But still give it a try:

Code:
#! /bin/bash

len=$(($(echo $1 | wc -c) - 1))
a=$1
for ((i=0; i<=$len; i++))
do
    ch=${a:$i:1}
    if [[ "${ch}" =~ [0-9] ]]
    then
        times=$ch
    else
        for ((j=1; j<=$times; j++))
        do
            echo -e "$ch\c"
        done
    fi
done

Code:
# ./test.sh 3a4b3x3e
aaabbbbxxxeee

This User Gave Thanks to balajesuri For This Post:
# 17  
Old 03-19-2012
But the above one will not address if we have input such as :
Code:
12a45r234p

# 18  
Old 03-19-2012
Code:
#! /bin/bash

shopt -s extglob

x=$1
while [ ${#x} -gt 0 ]
do
    num=${x%%[a-zA-Z]*}; x=${x##+([0-9])}
    str=${x%%[0-9]*}; x=${x##+([a-zA-Z])}
    for ((i=1; i<=$num; i++))
    do
        echo -e "$str\c"
    done
done
echo

Code:
[root@host ~]# ./test.sh 10ab11cd12ef
ababababababababababcdcdcdcdcdcdcdcdcdcdcdefefefefefefefefefefefef
[root@host ~]# ./test.sh 3a4b5c
aaabbbbccccc
[root@host ~]# ./test.sh 10hello12world
hellohellohellohellohellohellohellohellohellohelloworldworldworldworldworldworldworldworldworldworldworldworld

Just out of curiosity, what is the real commercial scenario where you're requiring something like this?

Last edited by balajesuri; 03-19-2012 at 07:31 AM..
This User Gave Thanks to balajesuri For This Post:
# 19  
Old 03-19-2012
Great man!
This is not an actual commercial scenario !
Just I am trying In my Interest
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. OS X (Apple)

Unicode encoding and decoding, OSX 10.13.5.

I am struggling here to understand...... The default encoding. See photo 1. Why does this NOT work? #!/bin/bash # Code for OSX 10.13.5. default UNICODE encoding. echo"" echo "The default UTF-8..." locale echo"" echo "Change to 8 bit ASCII only..." LANG="en_GB.US-ASCII" export... (2 Replies)
Discussion started by: wisecracker
2 Replies

2. Programming

ASN1 decoding error

Hi, fellows i am modifying asn1 schema to be able to decode a file, but i am hitting a error on one of the fields using free online tool asn1-playground. I suspect i need to change type and have tried with IDENTIFIER but it doesn't help...any ideas check the schema and file down , please ... (0 Replies)
Discussion started by: tahchiev01
0 Replies

3. Shell Programming and Scripting

Decoding and pattern matching

Hello, I have a huge file with over 700,00 SNPs with 18 columns. One column is in the format --+-+ ---++ ????? -???? Now i have another list which corresponds to this code in a particular order A-1 B-7 C-11 D-3 E-100 Now I need to match the expression above to the pattern,... (1 Reply)
Discussion started by: nans
1 Replies

4. Shell Programming and Scripting

FTP decoding

I am trying to understand a UNIX script which FTPs certain files from a remote location to the local machine. I understand the basic FTP command but the UNIX script uses the following command: ftp -n -i -v > $logftp_trg 2>&1 <<! open $MFX_FTP_SERVER user $MFX_FTP_LOGIN $MFX_FTP_PWD Can anyone... (5 Replies)
Discussion started by: Bhavesh Sharma
5 Replies

5. Shell Programming and Scripting

[Solved] Decoding a base 64 string

Is it possible to decode a base 64 string in linux or unix. If so, related commands or reference notes would be really helpful. (1 Reply)
Discussion started by: chandu123
1 Replies

6. UNIX for Dummies Questions & Answers

URL decoding with awk

The challenge: Decode URL's, i.e. convert %HEX to the corresponding special characters, using only UNIX base utilities, and without having to type out each special character. I have an anonymous C code snippet where the author assigns each hex digit a number from 0 to 16 and then does some... (2 Replies)
Discussion started by: uiop44
2 Replies

7. IP Networking

Packet decoding

Hi, wondering if anyone can suggest a tool to me that will let me either cut & paste hex or type it in for packet decoding. I want to be able to decode a packet as done with tcpdump or wireshark, but I want to be able to manually input the hex myself. (2 Replies)
Discussion started by: Breakology
2 Replies

8. Solaris

problem when decoding a binary file

I tried to decode a binary script using the command 'uudecode'. but it is giving error as 'No begining line'. 'uudecode -o <outfile name> <binary file>' Please help me in resolving this. (4 Replies)
Discussion started by: vamshikrishnab
4 Replies

9. Shell Programming and Scripting

decoding commands

hi please can anyone help me in decoding shell commands. i need a way to decode the encrypted shell commands. (8 Replies)
Discussion started by: rochitsharma
8 Replies

10. Programming

Decoding of Core Dump

Hi ALL, Is it possible to decode the core dumb file to find the error? I get an Memory Core Dumb error with an core file. Regards, P. Prathaban. (3 Replies)
Discussion started by: p_prathaban
3 Replies
Login or Register to Ask a Question