01-29-2009
sh vs csh question
I have inherited the UNIX scripting duties on our team and have only been at this for few months. I apologize for what may be a basic question.
We have this snippet of code that gets lines from a file (using grep) based on a parameter we pass in (code shown below).
My question about this is that this code works when we execute it in a c-shell (#!/bin/csh) but not in bourne shell (#!/bin/sh).
I was wondering if there is a syntactical difference for this, and / or if there would be bourne shell equivalent.
Every script we have runs bourne shell, so I am wondering if there is any potential problems running this one as c-shell; better put, I'd be reluctant to run it as c-shell just for the sake of keeping this code.
Any info or direction would be greatly appreciated,
thanks
JH
set RECORDS = `grep ^$1 ${CFGFILE} | grep 'C$'`
foreach record ( ${RECORDS} )
set rSID = `echo $record | tr -s " " | cut -f1 -d","`
set rCLIENT = `echo $record | tr -s " " | cut f2 -d","'
set rINSTANCE = `echo $record | tr -s " " | cut -f3 -d","`
set rSERVER = `echo $record | tr -s " " | cut -f4 -d","`
set rTYPE = `echo $record | tr -s " " | cut -f5 -d","`
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Dear all,
I am reading a file that has 1 column. While reading I must find the line references from the another file. The following shell doesn't works.
Please help
#!/bin/bash
while read filename; do
grep ${filename} fs_full.dat >> unprocfull.dat;
done < unproc.dat
But when... (2 Replies)
Discussion started by: mr_bold
2 Replies
2. UNIX for Dummies Questions & Answers
I am still fairly new to unix scripting and I will try my best to explain my question the best I can....
I have a text file called hello.txt, and in this file I need to search every line that contains the words "help" and "cat" and move the respective lines into their own columns in another... (2 Replies)
Discussion started by: silvermax
2 Replies
3. Shell Programming and Scripting
I have a key file
$ cat klist
5 N:8855 CASA VERDE ROAD :32827 :ORLAND
5 N:585 MOLLY LANE :30189 :WOODST
5 N:320 NINA ROAD :32304 :TALLAH
and a data file, see example of the line below:
N:RT 15 & N 7TH STREET :17837 :U SAVE
I need to search by key (2nd field) from klist... (6 Replies)
Discussion started by: migurus
6 Replies
4. Shell Programming and Scripting
Hello Everyone,
i need to read specific number of lines ( always serialized ; i.e from 10 to 20 or from 34 to 44 ) in a file , where the first line is found by grep 'ing a keyword.
example
file.txt
------------------------------------------------------------------
--header
this is the... (7 Replies)
Discussion started by: alain.kazan
7 Replies
5. Shell Programming and Scripting
I'm putting together a script that will search my mail archives for emails that meet certain criteria and output the files to a text file.
I can manually cat that text file and pipe it into sendmail and it will work (i.e. cat /pathtofile/foo.txt | sendmail -t me@company.com)
My script sends... (7 Replies)
Discussion started by: binary-ninja
7 Replies
6. UNIX for Dummies Questions & Answers
I have two files
file1.txt
angie
mary
susan
file2.txt
angie blond
mary brunnet
susan red
christine blackI want to get this output
angie blond
mary brunnet
susan redI write
grep --file=file1.txt file2.txtand i get no results
i also wrote
cat file1.txt|while read line... (19 Replies)
Discussion started by: FelipeAd
19 Replies
7. Shell Programming and Scripting
Hi Guys,
I have a small script which greps for the username reading from stdinput.
./file.sh pattern
pattern=$1
grep "blah blah.*$pattern" /home/user/log.txt
Instead of typing the pattern everytime i want to read the pattern from a file inside the shell script and execute the... (5 Replies)
Discussion started by: Irishboy24
5 Replies
8. Shell Programming and Scripting
Hi,
I have a file while is the output of lspath command and output of file is
#cat lspath.txt
Enabled hdisk0 vscsi0
Enabled hdisk0 vscsi1
Enabled hdisk1 vscsi0
Enabled hdisk2 vscsi0
Enabled hdisk2 vscsi1
Missing hdisk3 vscsi0
Enabled hdisk3 vscsi1
Have created script to check state... (7 Replies)
Discussion started by: ksgnathan
7 Replies
9. UNIX for Dummies Questions & Answers
Hi,
I have a number of files containing the information below.
"""""
Fundallinfo
6.3950 14.9715 14.0482
"""""
I would like to grep for Fundallinfo and use it to read the next line? I ideally would like to read the three numbers that follow in the next line and... (2 Replies)
Discussion started by: Paul Moghadam
2 Replies
10. Shell Programming and Scripting
Hi Team,
in /tmp folder i have thousands of log files i want to read each file and grep a value called "Calling This".
Each logfile name is different but it ends with .log.
How can i achieve this?
Please excuse if i did any mistake by not following forum standards. I will surely follow... (10 Replies)
Discussion started by: darling
10 Replies
LEARN ABOUT OPENSOLARIS
cut
cut(1) User Commands cut(1)
NAME
cut - cut out selected fields of each line of a file
SYNOPSIS
cut -b list [-n] [file]...
cut -c list [file]...
cut -f list [-d delim] [-s] [file]...
DESCRIPTION
Use the cut utility to cut out columns from a table or fields from each line of a file; in data base parlance, it implements the projection
of a relation. The fields as specified by list can be fixed length, that is, character positions as on a punched card (-c option) or the
length can vary from line to line and be marked with a field delimiter character like TAB (-f option). cut can be used as a filter.
Either the -b, -c, or -f option must be specified.
Use grep(1) to make horizontal ``cuts'' (by context) through a file, or paste(1) to put files together column-wise (that is, horizontally).
To reorder columns in a table, use cut and paste.
OPTIONS
The following options are supported:
list A comma-separated or blank-character-separated list of integer field numbers (in increasing order), with optional - to indi-
cate ranges (for instance, 1,4,7; 1-3,8; -5,10 (short for 1-5,10); or 3- (short for third through last field)).
-b list The list following -b specifies byte positions (for instance, -b1-72 would pass the first 72 bytes of each line). When -b and
-n are used together, list is adjusted so that no multi-byte character is split.
-c list The list following -c specifies character positions (for instance, -c1-72 would pass the first 72 characters of each line).
-d delim The character following -d is the field delimiter (-f option only). Default is tab. Space or other characters with special
meaning to the shell must be quoted. delim can be a multi-byte character.
-f list The list following -f is a list of fields assumed to be separated in the file by a delimiter character (see -d ); for
instance, -f1,7 copies the first and seventh field only. Lines with no field delimiters will be passed through intact (useful
for table subheadings), unless -s is specified.
-n Do not split characters. When -b list and -n are used together, list is adjusted so that no multi-byte character is split.
-s Suppresses lines with no delimiter characters in case of -f option. Unless specified, lines with no delimiters will be passed
through untouched.
OPERANDS
The following operands are supported:
file A path name of an input file. If no file operands are specified, or if a file operand is -, the standard input will be used.
USAGE
See largefile(5) for the description of the behavior of cut when encountering files greater than or equal to 2 Gbyte (2^31 bytes).
EXAMPLES
Example 1 Mapping user IDs
A mapping of user IDs to names follows:
example% cut -d: -f1,5 /etc/passwd
Example 2 Setting current login name
To set name to current login name:
example$ name=`who am i | cut -f1 -d' '`
ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of cut: LANG, LC_ALL, LC_CTYPE, LC_MES-
SAGES, and NLSPATH.
EXIT STATUS
The following exit values are returned:
0 All input files were output successfully.
>0 An error occurred.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
|CSI |Enabled |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
SEE ALSO
grep(1), paste(1), attributes(5), environ(5), largefile(5), standards(5)
DIAGNOSTICS
cut: -n may only be used with -b
cut: -d may only be used with -f
cut: -s may only be used with -f
cut: cannot open <file>
Either file cannot be read or does not exist. If multiple files are present, processing continues.
cut: no delimiter specified
Missing delim on -d option.
cut: invalid delimiter
cut: no list specified
Missing list on -b, -c, or -f option.
cut: invalid range specifier
cut: too many ranges specified
cut: range must be increasing
cut: invalid character in range
cut: internal error processing input
cut: invalid multibyte character
cut: unable to allocate enough memory
SunOS 5.11 29 Apr 1999 cut(1)