I am trying to loop through lots and lots of folders and use the names of the folders to run a Python script which has parameters.
E.g.
-- setup_refs -n John -f England/London/Hackney/John -c con/con.cnf
Normally to run `setup_refs` once from command line it's: `python setup_refs.py -n John -f England/London/Hackney/ref -c con/con.cnf`
The program folder (/home/program/) contains:
- setup.refs.py (script)
- ref (folder)
- con (folder) - con.cnf (file)
Can this be done?
Observations:
You use the -n and -f switches inconsistently in the code compared to your example.
In your code you use /home/program/config/config.cnf rather than your required con/con.cnf
You don't need the trailing semicolons at the end of each line in bash or other bourne-derived shellscripts.
If you use:
you don't need the extra step of removing the directory part of the filename. You will, however be in a different directory than the one you start out in (this may be a problem, but you are using full pathnames anyway).
Stupid question: In the above code if there is a folder (file?) named john_smith your code will set the $new_fldr variable to john. What happens to a folder named john?
Another stupid question: Have you tried running that code?
I have a folder called {homedata}
Within this folder there are 12 subfolders 200601.......200612
Within each subfolder there are 8 sets of files
Each filename commences with A B C D E F G or H,
so {filename}* can be used.
I am trying to write a script which will from the top level
go... (2 Replies)
I have a very basic bash shell script, which has many "while... done; for .... done" loop clauses, like the following
~~
#!/bin/bash
while blablalba; do
....
done < /tmp/file
for line in `cat blablabla`; do grep $line /tmp/raw ; done > /tmp/1;
while blablalba2; do
....
done <... (2 Replies)
I need a script which can search for two files in location /share/point/ which has year and month stamps example 1) Extract200806.txt
2)file_new200805.csv
If these files exists then it should run a code named abc.sas (3 Replies)
I have this script someone very kindly help me write last year which loops through all files in a folder and does a command.
I need to modify it to loop through all sub-folders of a main folder and only perform the command on files modified after Jan 1st 2008. And I need the command to place the... (3 Replies)
I'm trying to get a script to iterate of an array in bash run a series of commands in those folders.
#Folder names
folders=(folder1 folder2 folder3)
#Common path for folders
fold_path="/Users/Rich/Projects/"
# For each element array copy script to folder and execute
for f in... (2 Replies)
Hi,
I have first script which on IR remote command event execute the second script. If the second script is executed, it display echo "timeout expired" after 10s. This works as expected.
But I also want to reset timer (increase time) in case if the second script is executed again within 10s.
... (8 Replies)
Greetings all,
We are implementing a new tool called URLwatch which is a python utility. Here are the requirements.
1) Run every 10 seconds
2) Execute the python script
3) Output file gets generated, FTP it to a differernt server
I gave no idea how to do this and management needs a demo... (3 Replies)
Hello
I am facing a very unique problem and not able to understand why. I have written a function which will check header of the file. If header is present good else it will write the header on top
def writeHeaderOutputCSV(fileName):
# See if the file exist already
try:
... (0 Replies)
Hi all,
I am trying to run below python code for connecting remote windows machine from unix to run an python file exist on that remote windows machine..
Below is the code I am trying:
#!/usr/bin/env python
import wmi
c = wmi.WMI("xxxxx", user="xxxx", password="xxxxxxx")... (1 Reply)
I am unable to loop print a python string array in my unix shell script:
~/readarr.sh '{{ myarr }}'
more readarr.sh
echo "Parameter 1:"$1
MYARRAY= $1
IFS=
MYARRAY=`python <<< "print ' '.join($MYARRAY)"`
for a in "$MYARRAY"; do
echo "Printing Array: $a"
done
Can you... (10 Replies)
Discussion started by: mohtashims
10 Replies
LEARN ABOUT LINUX
refile
REFILE(1) [nmh-1.5] REFILE(1)NAME
refile - file message in other folders
SYNOPSIS
refile [msgs] [-draft] [-link | -nolink] [-preserve | -nopreserve] [-unlink | -nounlink] [-src +folder] [-file file] [-rmmproc program]
[-normmproc] +folder1 ... [-version] [-help]
DESCRIPTION
Refile moves (see mv(1)) or links (see ln(1)) messages from a source folder into one or more destination folders.
If you think of a message as a sheet of paper, this operation is not unlike filing the sheet of paper (or copies) in file cabinet folders.
When a message is filed, it is linked into the destination folder(s) if possible, and is copied otherwise. As long as the destination
folders are all on the same file system, multiple filing causes little storage overhead. This facility provides a good way to cross-file
or multiply-index messages. For example, if a message is received from Jones about the ARPA Map Project, the command
refile cur +jones +Map
would allow the message to be found in either of the two folders `jones' or `Map'.
You may specify the source folder using -src +folder. If this is not given, the current folder is used by default. If no message is spec-
ified, then `cur' is used by default.
The option -file file directs refile to use the specified file as the source message to be filed, rather than a message from a folder.
Note that the file should be a validly formatted message, just like any other nmh message. It should NOT be in mail drop format (to con-
vert a file in mail drop format to a folder of nmh messages, see inc(1)).
If a destination folder doesn't exist, refile will ask if you want to create it. A negative response will abort the file operation. If
the standard input for refile is not a tty, then refile will not ask any questions and will proceed as if the user answered "yes" to all
questions.
The option -link preserves the source folder copy of the message (i.e., it does a ln(1) rather than a mv(1)), whereas, -nolink (the
default) deletes the filed messages from the source folder.
Normally when a message is refiled, for each destination folder it is assigned the number which is one above the current highest message
number in that folder. Use of the -preserv switch will override this message renaming, and try to preserve the number of the message. If
a conflict for a particular folder occurs when using the -preserve switch, then refile will use the next available message number which is
above the message number you wish to preserve.
If -link is not specified (or -nolink is specified), the filed messages will be removed from the source folder. The default is to remove
these messages by renaming them with a site-dependent prefix (usually a comma). Such files will then need to be removed in some manner
after a certain amount of time. Many sites arrange for cron to remove these files once a day, so check with your system administrator.
Alternately, if you wish for refile to really remove the files representing these messages from the source folder, you can use the -unlink
switch (not to be confused with the -link switch). But messages removed by this method cannot be later recovered.
If you prefer a more sophisticated method of `removing' the messages from the source folder, you can define the rmmproc profile component.
For example, you can add a profile component such as
rmmproc: /home/coleman/bin/rmm_msgs
then refile will instead call the named program or script to handle the message files.
The user may specify -rmmproc program on the command line to override this profile specification. The -normmproc option forces the message
files to be deleted by renaming or unlinking them as described above.
The -draft switch tells refile to file the <mh-dir>/draft.
FILES
$HOME/.mh_profile The user profile
PROFILE COMPONENTS
Path: To determine the user's nmh directory
Current-Folder: To find the default current folder
Folder-Protect: To set mode when creating a new folder
rmmproc: Program to delete the message
SEE ALSO folder(1), rmf(1), rmm(1)DEFAULTS
`-src +folder' defaults to the current folder
`msgs' defaults to cur
`-nolink'
`-nounlink'
`-nopreserve'
CONTEXT
If -src +folder is given, it will become the current folder. If neither -link nor `all' is specified, the current message in the source
folder will be set to the last message specified; otherwise, the current message won't be changed.
If the "Previous-Sequence" profile entry is set, in addition to defining the named sequences from the source folder, refile will also
define those sequences for the destination folders. See mh-sequence (5) for information concerning the previous sequence.
BUGS
Since refile uses your rmmproc to delete the message, the rmmproc must NOT call refile without specifying -normmproc, or you will create an
infinite loop.
MH.6.8 11 June 2012 REFILE(1)