Scripting question | Unix Linux Forums | Shell Programming and Scripting

  Go Back    


Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here.

Scripting question

Shell Programming and Scripting


Closed Thread    
 
Thread Tools Search this Thread Display Modes
    #1  
Old 12-03-2012
nex_asp nex_asp is offline
Banned
 
Join Date: Dec 2012
Last Activity: 21 May 2013, 2:14 AM EDT
Location: India
Posts: 70
Thanks: 20
Thanked 0 Times in 0 Posts
Scripting question

Preview of command prompt
f ---> to start ferret
q----> to stop ferret


Code:
asp@nex:~$ f
     NOAA/PMEL TMAP
     FERRET v6.82  
     Linux 2.6.18-308.8.2.el5PAE 32-bit - 08/03/12
      3-Dec-12 16:44    
 
yes? go my.jnl

yes?column=4/skip=1/type=num,text ............filename.txt

---
---some code...to do some task
---
yes?save/file=filename.nc ........................................
yes? q

after the execution of quite process script has to do one more thing that is to change the base of filename both (filename.txt and filename.nc) at the beginning and end with the next file's base in a directory till the end of all the files in a directory

again script has to enter f in command prompt.....
and has to run go my.jnl
;
;
again change file base name in my.jnl file

I replaced base of file manually one after another by putting my.jnl file in separate directory by this script


Code:
#!/bin/bash
# Replaces string in a jnl file 
#it kills my time in replacing string..
OLD="data1"
NEW="data2"
TFILE="/tmp/out.tmp.$$"
for file in *.jnl; do
  if [ -f $file -a -r $file ]; then
      sed "s/$OLD/$NEW/g" "$file" > $TFILE && mv $TFILE "$file"
  else
   echo "Error: Cannot read $file"
  fi
done

As I am very poor in programming I could not able to do the task which I actually required for my task

I looking forward for positive reply...


Thanks in advance..

Last edited by nex_asp; 12-03-2012 at 06:54 AM.. Reason: code tags
Sponsored Links
    #2  
Old 12-03-2012
RudiC RudiC is offline Forum Advisor  
Registered User
 
Join Date: Jul 2012
Last Activity: 2 September 2014, 6:26 PM EDT
Location: Aachen, Germany
Posts: 4,164
Thanks: 69
Thanked 995 Times in 943 Posts
Did you consider a "here document" (c.f. man bash)? Run this script:
Code:
$ f <<EndOfCommands
go my.jnl
column=4/skip=1/type=num,text ............filename.txt
---
--- some code...to do some task
---
save/file=filename.nc
q
EndOfCommands

If the delimiter (EndOfCommands in this case) is unquoted, the lines are expanded etc., so you can use shell variables.
Sponsored Links
    #3  
Old 12-03-2012
nex_asp nex_asp is offline
Banned
 
Join Date: Dec 2012
Last Activity: 21 May 2013, 2:14 AM EDT
Location: India
Posts: 70
Thanks: 20
Thanked 0 Times in 0 Posts

Code:
asp@nex:~$ f
                  NOAA/PMEL TMAP
                  FERRET v6.82        
                  Linux 2.6.18-308.8.2.el5PAE 32-bit - 08/03/12       3-Dec-12 16:44

 yes? go my.jnl
! this is my.jnl columns/skip=1/delim="\t,\b"/type="numeric,text,numeric,latitude" filename.txt
let time = v1 
let cast = v2 
let level = v3 
let depth =v4 
list/file = filename.nc/format=cdf/clobber v1,v2,v3,v4
listing filename.nc
yes ? q
asp@nex:~$ here again f should be typed

No I didn't consider, when I run above script I got some error its because of ferret

my.jnl is a file which is containing filename.txt as well as filename.nc

base of both .txt and .nc are same...that is filename

example data.txt data.nc

after each execution of go my.jnl it needs to be quite otherwise I will get memory error, as my text file size is about 10 MB,

once again it should write. after quite...f in command prompt..
and then go my.jnl

here i will paste my jnl...then u will have come to know...

Code:
! this is my.jnl
columns/skip=1/delim="\t,\b"/type="numeric,text,numeric,latitude" filename.txt
let time = v1
let cast = v2
let level = v3
let depth =v4
list/file = filename.nc/format=cdf/clobber v1,v2,v3,v4

Note : first filename.txt comes after " , and second filename.nc comes after =
    #4  
Old 12-03-2012
RudiC RudiC is offline Forum Advisor  
Registered User
 
Join Date: Jul 2012
Last Activity: 2 September 2014, 6:26 PM EDT
Location: Aachen, Germany
Posts: 4,164
Thanks: 69
Thanked 995 Times in 943 Posts
Sorry - I don't have a clue what ferret is or what it does beyond its zoological equivalent. Either you tell us more specifically what you need, so we can help, or you take the hints and proposals given and try yourself to understand/expand/improve.
I GUESS go my.jnl itself is a call to a script in ferret. So try reducing the here document to the call and to the q uit command.
Sponsored Links
    #5  
Old 12-03-2012
nex_asp nex_asp is offline
Banned
 
Join Date: Dec 2012
Last Activity: 21 May 2013, 2:14 AM EDT
Location: India
Posts: 70
Thanks: 20
Thanked 0 Times in 0 Posts
I just want shell script...

I just want want shell script to do following task

if possible try to write script from following ideas

1. read all the files name in a directory and write filename in new text file

2.Assume the directory will be having one more text file(my.jnl
) will have some filename inside with extension .txt and .nc, so search the filename and start some counter

3. once execution of quite command, again command prompt comes with user@hostname, then write the next file base name into first searched location, and so on till the end of new text file

I hope you will understand...
Sponsored Links
Closed Thread

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Scripting question moe2266 Shell Programming and Scripting 1 08-02-2007 01:21 AM
Scripting question gonzotonka Solaris 1 04-27-2006 07:04 PM
scripting question carlvernon Shell Programming and Scripting 10 04-21-2006 06:42 AM
scripting question batmike Shell Programming and Scripting 3 11-26-2002 03:58 PM
another scripting question kristy UNIX for Dummies Questions & Answers 1 05-07-2001 12:02 PM



All times are GMT -4. The time now is 03:03 AM.