02-20-2014
Quote:
Originally Posted by
thuyetti
bakunin,
Thanks again so much for taking young time to help me ( and all of the users here...).
Thank you - you are welcome.
Quote:
Originally Posted by
thuyetti
I don't know why print does not work to output error, so I use echo ( does it matter ? )
I learned so much thanks to you, I'll like to learn more about "modern shell".
Can you please point me to some clues where to start.
Thanks again
Thibault
"print" probably doesn't work because your shell isn't a Korn shell (where "print" is a built-in command). Using "echo" (or "printf" is a reasonable replacement.
The book i learned most from is "KornShell Programming Tutorial" (about ksh88) and "Hands-On ksh93 Programming", both by Barry Rosenberg. I like his humorous style of writing.
The book i learned the most spaced-out tricks from is "Unix Power Tools" by Tim O'Reilly. If you ever need to know the least-known stunning shorthand pulled off - this book is full of it (but beware: definitely not beginners stuff).
I hope this helps.
bakunin
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hi,
I'm trying to compare Actual.html with a baseline.html
However, everytime it fails b'coz of the timestamp differences
between the two. So, thought of stripping off the timestamp
from both the *html files before comparing using below sed
command over Solaris Unix platform:... (3 Replies)
Discussion started by: elearn.latha
3 Replies
2. UNIX for Dummies Questions & Answers
I am using UNIX from few months, I want to delete files in subdirectories that have a timestamp till yesterday. I mean all the files before Jan 10th...
can I just give find and do it or how do I do it??? (2 Replies)
Discussion started by: jcluvme
2 Replies
3. Shell Programming and Scripting
Hi all,
I have a binary file (orig.dat) and two special delimiter strings 'AAA' and 'BBB'. My binary file's content is as follow:
<Data1.1>AAA<Data1.2>BBB
<Data2.1>AAA<Data2.2>BBB
...
<DataN.1>AAA<DataN.2>BBB
DataX.Y might have any length, and contains any kind of special/printable... (1 Reply)
Discussion started by: Averell
1 Replies
4. Shell Programming and Scripting
Hi folks,
Happy new year.
I have a file 'filename' that i wd like to split basing on the contents in the last column.
The 'filename' content looks like
256772744788,9,11
256772744805,9,11
256772744792,9,11
256775543055,10,12
256782625357,9,12
256772368953,10,13
256772627735,10,13... (3 Replies)
Discussion started by: jerkesler
3 Replies
5. UNIX for Dummies Questions & Answers
So, I know how to do some of this stuff on an individual level, but I'm drawing a blank as to how to put it all together.
I have a pattern that I'm looking for in a log file. The log file I know came in yesterday, so I want to limit the search to that day's listing of files. How would I do... (5 Replies)
Discussion started by: kontrol
5 Replies
6. Shell Programming and Scripting
Hi,
I've a file in the following format
1999-APR-8 17:31:06 1500 3 45
1999-APR-8 17:31:15 1500 3 45
1999-APR-8 17:31:25 1500 3 45
1999-APR-8 17:31:30 1500 3 45
1999-APR-8 17:31:55 1500 3 45
1999-APR-8 17:32:06 1500 3 ... (1 Reply)
Discussion started by: vaibhavkorde
1 Replies
7. UNIX for Dummies Questions & Answers
Hi All,
I am new to unix programming. I am trying for a requirement and the requirement goes like this.....
I have a test folder. Which tracks log files. After certain time, the log file is getting overwritten by another file (randomly as the time interval is not periodic). I need to preserve... (2 Replies)
Discussion started by: mailsara
2 Replies
8. UNIX for Dummies Questions & Answers
In folder there are files
(eg ABS_18APR2012_XYZ.csv
DSE_17APR2012_ABE.csv) .
My requirement is to delete all the files except today's timestamp
I tried doing this to list all the files not having today's date timestamp
#!/bin/ksh
DATE=`date +"%d%h%Y"`
DIR=/data/rfs/... (9 Replies)
Discussion started by: manushi88
9 Replies
9. Shell Programming and Scripting
Dear friends,
I have two files. One with all IDs(in a single field) . And another with data(of which say field 5 is ID). I want to create an array of IDs using first file and
while reading second file if the ID appears in the array I need to print $0 else skip.
After a long gap I am... (6 Replies)
Discussion started by: paresh n doshi
6 Replies
10. Shell Programming and Scripting
Hi ,
I did the initial search but could not find what I was expecting for.
15606Always_9999999997_20160418.xml
15606Always_9999999998_20160418.xml
15606Always_9999999999_20160418.xml
9819Always_99999999900_20160418.xml
9819Always_99999999911_20160418.xmlAbove is the list of files I... (4 Replies)
Discussion started by: chillblue
4 Replies
LEARN ABOUT CENTOS
shell-quote
SHELL-QUOTE(1) User Contributed Perl Documentation SHELL-QUOTE(1)
NAME
shell-quote - quote arguments for safe use, unmodified in a shell command
SYNOPSIS
shell-quote [switch]... arg...
DESCRIPTION
shell-quote lets you pass arbitrary strings through the shell so that they won't be changed by the shell. This lets you process commands
or files with embedded white space or shell globbing characters safely. Here are a few examples.
EXAMPLES
ssh preserving args
When running a remote command with ssh, ssh doesn't preserve the separate arguments it receives. It just joins them with spaces and
passes them to "$SHELL -c". This doesn't work as intended:
ssh host touch 'hi there' # fails
It creates 2 files, hi and there. Instead, do this:
cmd=`shell-quote touch 'hi there'`
ssh host "$cmd"
This gives you just 1 file, hi there.
process find output
It's not ordinarily possible to process an arbitrary list of files output by find with a shell script. Anything you put in $IFS to
split up the output could legitimately be in a file's name. Here's how you can do it using shell-quote:
eval set -- `find -type f -print0 | xargs -0 shell-quote --`
debug shell scripts
shell-quote is better than echo for debugging shell scripts.
debug() {
[ -z "$debug" ] || shell-quote "debug:" "$@"
}
With echo you can't tell the difference between "debug 'foo bar'" and "debug foo bar", but with shell-quote you can.
save a command for later
shell-quote can be used to build up a shell command to run later. Say you want the user to be able to give you switches for a command
you're going to run. If you don't want the switches to be re-evaluated by the shell (which is usually a good idea, else there are
things the user can't pass through), you can do something like this:
user_switches=
while [ $# != 0 ]
do
case x$1 in
x--pass-through)
[ $# -gt 1 ] || die "need an argument for $1"
user_switches="$user_switches "`shell-quote -- "$2"`
shift;;
# process other switches
esac
shift
done
# later
eval "shell-quote some-command $user_switches my args"
OPTIONS
--debug
Turn debugging on.
--help
Show the usage message and die.
--version
Show the version number and exit.
AVAILABILITY
The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/ or CPAN for updated versions.
AUTHOR
Roderick Schertler <roderick@argon.org>
perl v5.16.3 2010-06-11 SHELL-QUOTE(1)