There may be many ways of doing this i'll describe just one & probably the easiest one.
Assuming that u r taking input from a fixed file 'input.txt' (whose content u might be changing when u have to pass different parameters). U can make a simple change in ur script. Just put this before u use the postional variables (i.e. $1,$2..etc)
A sample script can be
Above script will just print the parameters (where parameters itself come from the file). If u intend to take the filename as argument then u can do something like this: set `cat $1`
One more thing i would just like to mention is that the redirection is a capability of the shell and the script or command invoked might not even know that anything like this happened. Many commands on Unix process the standard input if no argument is specified and there u can use ur redirection but this is no way same as passing parameter. Like sort or cat, sort or display file that is passed as argument but if no argument is passed standard input is sorted(by sort) or anything written on std. input is displayed back(by cat). So in effect
sort filename (or cat filename) and sort <filename (or cat <filename) are same but they performed in very different ways. Hope u get me. An excellent description of this can be found in Programming in Unix Enviroment by Brian.W.Kerninghan & Rob Pike.
Regards
Rakesh
Last edited by Rakesh Ranjan; 04-06-2006 at 03:05 PM..
This User Gave Thanks to Rakesh Ranjan For This Post:
Hi guys,
I am new to AWK and unix scripting. Please see below my problem and let me know if anyone you can help.
I have 2 input files (example given below)
Input file 2 is a standard file (it will not change) and we have to get the name (second column after comma) from it and append it... (5 Replies)
All,
I am trying to figure out a script to run in windows that will allow me to match on First column in file1 to 8th Column in File2 then
Insert file1 column2 to file2 column4 then create a new file.
File1:
12345 Sam
12346 Bob
12347 Bill
File2:... (1 Reply)
Hello,
I'm trying to figure out how best to approach this script, and I have very little experience, so I could use all the help I can get. :wall:
I regularly need to delete files from many directories.
A file with the same name may exist any number of times in different subdirectories.... (3 Replies)
Dear All ,
i stuck in one problem executing xml .. i have input xml as
<COMMAND name="ARRANGEMENT.WRITE" timestamp="0" so="initial">
<SVLOBJECT>
<LONG name="CSP_PMNT_ID" val="-1"/>
<MONEY name="CSP_CEILING" amount="0.0" currency="AUD"/>
... (6 Replies)
Dear Friends,
I am looking for a shell script to merge input files into one file .. here is my idea:
1st paramter would be outfile file (all input files content)
read all input files and merge them to input param 1
ex: if I pass 6 file names to the script then 1st file name as output file... (4 Replies)
I've got a file that looks like this (spaces before first entries intentional):
12345650-000005000GL140227 ANNUAL HELC FEE EN
22345650-000005000GL140227 ANNUAL HELC FEE EN
32345650-000005000GL140227 ANNUAL HELC FEE EN
I want to read through the file line by line,... (6 Replies)
Just started learning Unix and received my first assignment recently. We haven't learned many commands and honestly, I'm stumped. I'd like to receive assistance/guidance/hints.
1. The problem statement, all variables and given/known data:
How do I write a shell script that takes in a file or... (4 Replies)
In the below bash a file is downloaded when the program is opened and then that file is searched based on user input and the result is written to a new file.
For example, the bash is opened and the download.txt is downloaded, the user then enters the id (NA04520). The id is used to search... (5 Replies)
Hello,
I have been working on script in which search and replace the multiple pattern.
1. update_params.sh read the multiple pattern from input file ParamMapping.txt(old_entry|New_entry) and passing this values one by one to change_text.sh
2. change_text.sh read... (0 Replies)
I have files named with different prefixes. From each I want to extract the first line containing a specific string, and then print that line along with the prefix.
I've tried to do this with a while loop, but instead of printing the prefix I print the first line of the file twice.
Files:... (3 Replies)
Discussion started by: pathunkathunk
3 Replies
LEARN ABOUT LINUX
lesspipe
LESSOPEN(1) General Commands Manual LESSOPEN(1)NAME
lessfile, lesspipe - "input preprocessor" for less.
SYNOPSIS
lessfile, lesspipe
DESCRIPTION
This manual page documents briefly the lessfile, and lesspipe commands. This manual page was written for the Debian GNU/Linux distribution
because the input preprocessor scripts are provided by Debian GNU/Linux and are not part of the original program.
lessfile and lesspipe are programs that can be used to modify the way the contents of a file are displayed in less. What this means is
that less can automatically open up tar files, uncompress gzipped files, and even display something reasonable for graphics files.
lesspipe will toss the contents/info on STDOUT and less will read them as they come across. This means that you do not have to wait for
the decoding to finish before less shows you the file. This also means that you will get a 'byte N' instead of an N% as your file posi-
tion. You can seek to the end and back to get the N% but that means you have to wait for the pipe to finish.
lessfile will toss the contents/info on a file which less will then read. After you are done, lessfile will then delete the file. This
means that the process has to finish before you see it, but you get nice percentages (N%) up front.
USAGE
Just put one of the following two commands in your login script (e.g. ~/.bash_profile):
eval "$(lessfile)"
or
eval "$(lesspipe)"
FILE TYPE RECOGNITION
File types are recognized by their extensions. This is a list of currently supported extensions (grouped by the programs that handle
them):
*.a
*.arj
*.tar.bz2
*.bz
*.bz2
*.deb, *.udeb
*.doc
*.gif, *.jpeg, *.jpg, *.pcd, *.png, *.tga, *.tiff, *.tif
*.iso, *.raw, *.bin
*.lha, *.lzh
*.tar.lz, *.tlz
*.lz
*.7z
*.pdf
*.rar, *.r[0-9][0-9]
*.rpm
*.tar.gz, *.tgz, *.tar.z, *.tar.dz
*.gz, *.z, *.dz
*.tar
*.jar, *.war, *.xpi, *.zip
*.zoo
USER DEFINED FILTERS
It is possible to extend and overwrite the default lesspipe and lessfile input processor if you have specialized requirements. Create an
executable program with the name .lessfilter and put it into your home directory. This can be a shell script or a binary program.
It is important that this program returns the correct exit code: return 0 if your filter handles the input, return 1 if the standard
lesspipe/lessfile filter should handle the input.
Here is an example script:
#!/bin/sh
case "$1" in
*.extension)
extension-handler "$1"
;;
*)
# We don't handle this format.
exit 1
esac
# No further processing by lesspipe necessary
exit 0
FILES
~/.lessfilter
Executable file that can do user defined processing. See section USER DEFINED FILTERS for more information.
BUGS
When trying to open compressed 0 byte files, less displays the actual binary file contents. This is not a bug. less is designed to do that
(see manual page less(1), section INPUT PREPROCESSOR). This is the answer of Mark Nudelman <markn@greenwoodsoftware.com>:
"I recognized when I designed it that a lesspipe filter cannot output an empty file and have less display nothing in that case; it's
a side effect of using the "no output" case to mean "the filter has nothing to do". It could have been designed to have some other
mechanism to indicate "nothing to do", but "no output" seemed the simplest and most intuitive for lesspipe writers."
Sometimes, less does not display the contents file you want to view but output that is produced by your login scripts (~/.bashrc or
~/.bash_profile). This happens because less uses your current shell to run the lesspipe filter. Bash first looks for the variable $BASH_ENV
in the environment expands its value and uses the expanded value as the name of a file to read and execute. If this file produces any out-
put less will display this. A way to solve this problem is to put the following lines on the top of your login script that produces output:
if [ -z "$PS1" ]; then
exit
fi
This tests whether the prompt variable $PS1 is set and if it isn't (which is the case for non-interactive shells) it will exit the script.
SEE ALSO less(1)AUTHOR
This manual page was written by Thomas Schoepf <schoepf@debian.org>, for the Debian GNU/Linux system (but may be used by others). Most of
the text was copied from a description written by Darren Stalder <torin@daft.com>.
LESSOPEN(1)