Sponsored Content
Full Discussion: URL decoding with awk
Top Forums UNIX for Dummies Questions & Answers URL decoding with awk Post 302603629 by uiop44 on Thursday 1st of March 2012 02:22:54 PM
Old 03-01-2012
I had another go at this without using xxd.

This version uses only sh builtins, sed, jot/seq and dc.

Not thoroughly tested, but seems to work.

Handling unicode too would be useful.

Code:
# octal to hex #
o2h(){ 
echo 16o 8i $1 p|dc;
}

# print an ascii table #
ud1(){ 
{
case $(uname) in 
FreeBSD)
jot -w%03d 178 000 177;
\
 ;;
*)
seq -w 000 177;
\
 ;;
esac;
} \
 |while read a;do 
printf '\'$a'\040'$a'\n' ;
done \
 |sed '
1,/039/d;
/[89]$/d;
/[89].$/d;
$d;
/^ /s/ /+/;
/^$/d;
'

}

# rough sed script to fd1 #
ud2(){
sed 's,.* ,,' \
| while read a;
do 
printf 'sl%%';
printf $(o2h $a);
printf 'l'
printf '\'$a;
printf 'lg\n';
done;
}

# add escapes or quotes \
 # for certain specials chars \
 # and delete single quote hex 27 #
ud3(){
sed '
/20/s/ /+/;
/6C/{
s,l,/,;
s,ll,/l,;
s,lg,/g,;
};
/5C/s,.,\"&\",7;
/22/s,\",\\",;
/26/s,&,\\&,;
/27/d;
';
}

# add single quote hex 27 #
ud4(){
printf 'sl%%27l\047\"\047\"\047lg\n';
}

# function header #
ud5(){
echo "ud(){
sed '";
}

# function footer #
ud6(){
echo "'
}"
}

# put it all together #
ud7(){ 
{
ud5;
ud1 \
 |ud2 \
 |ud3;
ud4;
ud6;
};
}


Last edited by uiop44; 03-04-2012 at 09:58 PM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

url calling and parameter passing to url in script

Hi all, I need to write a unix script in which need to call a url. Then need to pass parameters to that url. please help. Regards, gander_ss (1 Reply)
Discussion started by: gander_ss
1 Replies

2. Shell Programming and Scripting

url calling and parameter passing to url in script

Hi all, I need to write a unix script in which need to call a url. Then need to pass parameters to that url. please help. Regards, gander_ss (1 Reply)
Discussion started by: gander_ss
1 Replies

3. UNIX for Dummies Questions & Answers

ReDirecting a URL to another URL - Linux

Hello, I need to redirect an existing URL, how can i do that? There's a current web address to a GUI that I have to redirect to another webaddress. Does anyone know how to do this? This is on Unix boxes Linux. example: https://m45.testing.address.net/host.php make it so the... (3 Replies)
Discussion started by: SkySmart
3 Replies

4. Shell Programming and Scripting

decoding URL encoded strings

Hi, I have a couple pages of URL encoded strings that I need to unencode (they were originally in Arabic). So the first step is to unencode the strings and then to translate them to English. They are actually lists of words so the translation from Arabic to English shouldn't be too complicated.... (1 Reply)
Discussion started by: ed111
1 Replies

5. Shell Programming and Scripting

how to judge wether a url is valid or not using awk

rt 3ks:confused: (6 Replies)
Discussion started by: rainboisterous
6 Replies

6. Shell Programming and Scripting

Extract URL from RSS Feed in AWK

Hi, I have following data file; <outline title="Matt Cutts" type="rss" version="RSS" xmlUrl="http://www.mattcutts.com/blog/feed/" htmlUrl="http://www.mattcutts.com/blog"/> <outline title="Stone" text="Stone" type="rss" version="RSS" xmlUrl="http://feeds.feedburner.com/STC-Art"... (8 Replies)
Discussion started by: fahdmirza
8 Replies

7. Web Development

Regex to rewrite URL to another URL based on HTTP_HOST?

I am trying to find a way to test some code, but I need to rewrite a specific URL only from a specific HTTP_HOST The call goes out to http://SUB.DOMAIN.COM/showAssignment/7bde10b45efdd7a97629ef2fe01f7303/jsmodule/Nevow.Athena The ID in the middle is always random due to the cookie. I... (5 Replies)
Discussion started by: EXT3FSCK
5 Replies

8. UNIX for Dummies Questions & Answers

Awk: print all URL addresses between iframe tags without repeating an already printed URL

Here is what I have so far: find . -name "*php*" -or -name "*htm*" | xargs grep -i iframe | awk -F'"' '/<iframe*/{gsub(/.\*iframe>/,"\"");print $2}' Here is an example content of a PHP or HTM(HTML) file: <iframe src="http://ADDRESS_1/?click=5BBB08\" width=1 height=1... (18 Replies)
Discussion started by: striker4o
18 Replies

9. UNIX for Dummies Questions & Answers

Decoding a string

Hi, If my input string is 3a3b4c then my result should be aaabbbcccc. Please guide me how to achieve this in a bash script. Thanks (18 Replies)
Discussion started by: pandeesh
18 Replies

10. Shell Programming and Scripting

Reading URL using Mechanize and dump all the contents of the URL to a file

Hello, Am very new to perl , please help me here !! I need help in reading a URL from command line using PERL:: Mechanize and needs all the contents from the URL to get into a file. below is the script which i have written so far , #!/usr/bin/perl use LWP::UserAgent; use... (2 Replies)
Discussion started by: scott_cog
2 Replies
JOT(1)							      General Commands Manual							    JOT(1)

NAME
jot - print sequential or random data SYNOPSIS
jot [ options ] [ reps [ begin [ end [ s ] ] ] ] DESCRIPTION
Jot is used to print out increasing, decreasing, random, or redundant data, usually numbers, one per line. The options are understood as follows. -r Generate random data instead of sequential data, the default. -b word Just print word repetitively. -w word Print word with the generated data appended to it. Octal, hexadecimal, exponential, ASCII, zero padded, and right-adjusted repre- sentations are possible by using the appropriate printf(3) conversion specification inside word, in which case the data are inserted rather than appended. -c This is an abbreviation for -w %c. -s string Print data separated by string. Normally, newlines separate data. -n Do not print the final newline normally appended to the output. -p precision Print only as many digits or characters of the data as indicated by the integer precision. In the absence of -p, the precision is the greater of the precisions of begin and end. The -p option is overridden by whatever appears in a printf(3) conversion following -w. The last four arguments indicate, respectively, the number of data, the lower bound, the upper bound, and the step size or, for random data, the seed. While at least one of them must appear, any of the other three may be omitted, and will be considered as such if given as -. Any three of these arguments determines the fourth. If four are specified and the given and computed values of reps conflict, the lower value is used. If fewer than three are specified, defaults are assigned left to right, except for s, which assumes its default unless both begin and end are given. Defaults for the four arguments are, respectively, 100, 1, 100, and 1, except that when random data are requested, s defaults to a seed depending upon the time of day. Reps is expected to be an unsigned integer, and if given as zero is taken to be infinite. Begin and end may be given as real numbers or as characters representing the corresponding value in ASCII. The last argument must be a real number. Random numbers are obtained through random(3). The name jot derives in part from iota, a function in APL. EXAMPLES
The command jot 21 -1 1.00 prints 21 evenly spaced numbers increasing from -1 to 1. The ASCII character set is generated with jot -c 128 0 and the strings xaa through xaz with jot -w xa%c 26 a while 20 random 8-letter strings are produced with jot -r -c 160 a z | rs -g 0 8 Infinitely many yes's may be obtained through jot -b yes 0 and thirty ed(1) substitution commands applying to lines 2, 7, 12, etc. is the result of jot -w %ds/old/new/ 30 2 - 5 The stuttering sequence 9, 9, 8, 8, 7, etc. can be produced by suitable choice of precision and step size, as in jot 0 9 - -.5 and a file containing exactly 1024 bytes is created with jot -b x 512 > block Finally, to set tabs four spaces apart starting from column 10 and ending in column 132, use expand -`jot -s, - 10 132 4` and to print all lines 80 characters or longer, grep `jot -s "" -b . 80` SEE ALSO
ed(1), expand(1), rs(1), yes(1), printf(3), random(3), expand(1) 4th Berkeley Distribution June 6, 1993 JOT(1)
All times are GMT -4. The time now is 06:52 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy