How to use shell script's to get EPG Program with SED


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to use shell script's to get EPG Program with SED
# 1  
Old 11-06-2007
Tools How to use shell script's to get EPG Program with SED

This is my test script version:

Code:
#!/bin/sh
wget -q -O /tmp/axn 'http://www.axn.pt/programacion/'
sed -e '/^$/ d' /tmp/axn > /tmp/temp     #Clean black space

sed -e 's/<[^>]*>//g' /tmp/temp > /tmp/temp1  #Remove HTML
rm -f /tmp/temp    # Step by step script then clean one by one
sed 's/>[    ]*</></g'  /tmp/temp1 > /tmp/temp2
#
rm -f /tmp/temp1
sed -e '/^$/ d' /tmp/temp2 > /tmp/temp3     #Clean empty space
rm -f /tmp/temp2
sed -n '102,130p' /tmp/temp3 > /tmp/temp4 # Print line 102 to 103
rm -f /tmp/temp3
sed -e '/^$/ d' /tmp/temp4 > /tmp/temp5     #Clean empty space
rm -f /tmp/temp4
sed 's/^\([0-9][0-9]:[0-9][0-9]\)/\n\1/g' /tmp/temp5 > /tmp/temp6
rm -f /tmp/temp5
sed -e 's/&.*;//g' /tmp/temp6 > /tmp/temp7
rm -f /tmp/temp6
cat /tmp/temp7  # Show temp7
fi

and the result is this:

Code:
Manhã
                
        06:26C.S.I. Nova Iorque07:10Hospital Central08:33Sem Rasto09:20Stingers: Infiltrados10:15C.S.I. Nova Iorque11:05Hospital Central12:30C.S.I. Miami13:25Asas nos Pés14:15Medium

This is the Programs of this channel, this channel have no EPG on it, then using internet i can go to that web pag. and grab the "EPG"

Well the problem is that is not what i have in mind is something like this:
Code:
Manhã               
06:26 C.S.I. Nova Iorque
07:10 Hospital Central
08:33 Sem Rasto
09:20 Stingers: Infiltrados
10:15 C.S.I. Nova Iorque
11:05 Hospital Central
12:30 C.S.I. Miami
13:25 Asas nos Pés
14:15 Medium

Smilie

Another think this is not to be used in a PC but in STB Linux based.


Maby a xml aproch will be better, any ideas?
# 2  
Old 11-06-2007
I don't know which UNIX you're using. but my version of sed does not allow "\n" as an embedded carriage return. I need to do this:

#echo abcX123 | sed -e 's/X/\
/'

I don't know why there's no space after the timestamp, either, but both issues should be fixed by this:

Code:
# Note the space after the "\1"

sed 's/^\([0-9][0-9]:[0-9][0-9]\)/\
\1 /g' /tmp/temp5 > /tmp/temp6

That being said, there are probably much cleaner ways to parse this data. Sadly I know little of XML parsing.
# 3  
Old 11-06-2007
A possible solution with awk :
Code:
#!/bin/sh
wget -q -O /tmp/axn 'http://www.axn.pt/programacion/'
awk '
/<h1>.*<\/h1>/,/<\/div>/ {
   if (/<h1>/) {
      sub(/.*<h1>/,   "");
      sub(/<\/h1>.*/, "");
      print;
   } else if (/<dt>/) {
      gsub(/<\/a>/, "\n");
      gsub(/<[^>]*>/, " ");
      gsub(/[ \t]+/, " ");
      if (! /^ *$/) print;
   }
}
' /tmp/axn

Output:
Code:
Manhã
 06:18 C.S.I. Nova Iorque
 07:03 Hospital Central
 08:31 The Nine
 09:20 Stingers: Infiltrados
 10:15 C.S.I. Nova Iorque
 11:05 Hospital Central
 12:30 C.S.I. Miami
 13:25 Asas nos Pés
 14:15 Medium

Tarde
 15:10 Sem Rasto
 16:00 O Protector
 17:00 Investigação Criminal
 17:50 C.S.I. Nova Iorque
 18:40 Stingers: Infiltrados
 19:35 Medium

Noite
 20:33 Asas nos Pés
 21:30 Investigação Criminal
 22:26 C.S.I.
 23:20 C.S.I. Miami

Madrugada
 00:15 Investigação Criminal
 01:03 C.S.I.
 01:50 Corre Lola corre
 03:10 Stingers: Infiltrados
 03:58 Insert Coin
 04:24 Hospital Central
 05:40 Asas nos Pés

Jean-Pierre.
# 4  
Old 11-07-2007
Tools

Quote:
Originally Posted by aigles
A possible solution with awk :
Code:
#!/bin/sh
wget -q -O /tmp/axn 'http://www.axn.pt/programacion/'
awk '
/<h1>.*<\/h1>/,/<\/div>/ {
   if (/<h1>/) {
      sub(/.*<h1>/,   "");
      sub(/<\/h1>.*/, "");
      print;
   } else if (/<dt>/) {
      gsub(/<\/a>/, "\n");
      gsub(/<[^>]*>/, " ");
      gsub(/[ \t]+/, " ");
      if (! /^ *$/) print;
   }
}
' /tmp/axn

Output:
Code:
Manhã
 06:18 C.S.I. Nova Iorque
 07:03 Hospital Central
 08:31 The Nine
 09:20 Stingers: Infiltrados
 10:15 C.S.I. Nova Iorque
 11:05 Hospital Central
 12:30 C.S.I. Miami
 13:25 Asas nos Pés
 14:15 Medium

Tarde
 15:10 Sem Rasto
 16:00 O Protector
 17:00 Investigação Criminal
 17:50 C.S.I. Nova Iorque
 18:40 Stingers: Infiltrados
 19:35 Medium

Noite
 20:33 Asas nos Pés
 21:30 Investigação Criminal
 22:26 C.S.I.
 23:20 C.S.I. Miami

Madrugada
 00:15 Investigação Criminal
 01:03 C.S.I.
 01:50 Corre Lola corre
 03:10 Stingers: Infiltrados
 03:58 Insert Coin
 04:24 Hospital Central
 05:40 Asas nos Pés

Jean-Pierre.

You don't exist, heheh Tx. real nice script, seams so simple like you type... Smilie

Must test it, then i tould you result's...
About unix question, STB used this "MIX" to work:
Code:
+ CVS 25.08.2007
+ kernel v. 2.6.9 (1.10)
+ enigma v. 1.10 Mod (25.08.2007)
+ BusyBox v1.01 
+ Web Interface: 6.02
+ Gcc 3.4.4
+ FP Firmware 1.06
+ LZMA Patch


CU and regard's.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Controlling a program from shell script

Hi all, I am trying to write a shell script that starts a program, reads from its stdout and can write to its stdin. I'm having trouble to get it to work, I tried using named pipes, and using exec and file descriptors. Just couldn't get it to work, so I thought I'll post it here to see if... (4 Replies)
Discussion started by: test it
4 Replies

2. Homework & Coursework Questions

Need help writing a shell script program

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Write the a shell script program to remove all space characters stored in the shell variable TEXT.... (7 Replies)
Discussion started by: kofine05
7 Replies

3. Shell Programming and Scripting

shell script program

shell script in Unix/Linux to find the lines numbers of a text file are having word which is 5 to 10 characters long and having first letter as a capital letter. (3 Replies)
Discussion started by: usersnehal
3 Replies

4. Shell Programming and Scripting

shell program with sed

I want to substitute a charactor "PAN" with "TAN" in a shell, I used sed command in shell, it wo'nt work but the same is run from command prompt it was successful. the command is sed ' s/PAN/TAN/g ' <i/p> > <o/p> sed ' s/^M/^M/g ' <i/p> > <o/p> (1st ^M is Ctrl+V+M, 2nd should be line feed/next... (1 Reply)
Discussion started by: anil_kut
1 Replies

5. Shell Programming and Scripting

C program to execute shell script

Hi, Can anyone pls give a sample to execute a shell script from C program Thanks (2 Replies)
Discussion started by: baigmd
2 Replies

6. Shell Programming and Scripting

Call C Program From Shell Script

Hi, Could anybody please let me know how to call a C_Program from shell script. I know through command "system" we can call shell script from C program. Awaiting response. Thanks and regards, Chanakya M (4 Replies)
Discussion started by: Chanakya.m
4 Replies

7. Shell Programming and Scripting

please convert the below program into shell script

if ( ( grep -i "Exception : " /home/dklog* )) then echo " improper combination" elsif ( ( grep -i "invalid" /home/dklog*)) then echo " wrong process " fi fi in the above case i am facing the the syntx error please help in this case... (3 Replies)
Discussion started by: mail2sant
3 Replies

8. Shell Programming and Scripting

Need help on C-shell script program

#!/bin/csh # This program will add integers # # # add integer1 .. # # Check for argument if ($#argv == 0 ) then echo "usage: add integers" exit 1 else set input = $argv endif # set sum = 0 foreach var ( $input ) @sum = $sum + $input end # (1 Reply)
Discussion started by: haze21
1 Replies

9. Shell Programming and Scripting

How to use sed within shell program?

Hi, I tried this with my shell program and it didn't work: /usr/ucb/sed '/$employeeID/d' /usr1/log/logfile How to let sed see my variable employeeID within my shell program? Thanks! (1 Reply)
Discussion started by: whatisthis
1 Replies

10. Filesystems, Disks and Memory

shell script program

shell script for sorting,searchingand insertion/deletion of elements in a list (1 Reply)
Discussion started by: jayaram_miryabb
1 Replies
Login or Register to Ask a Question