Question regarding cat command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Question regarding cat command
# 8  
Old 08-06-2009
Quote:
Originally Posted by asirohi
Hi,
I chaged the script a little bit,
#!/bin/sh

FIX_XML_PATH=/home/administrator/testfix/fix
FIX_FILE=`ls $FIX_XML_PATH | grep xml`

echo $FIX_FILE
cat $FIX_FILE

Variable $FIX_FILE store a xml file.Smilie


*******logs*******


$ sh -vx xmlParse.sh
#!/bin/sh

FIX_XML_PATH=/home/administrator/testfix/fix
+ FIX_XML_PATH=/home/administrator/testfix/fix
FIX_FILE=`ls $FIX_XML_PATH | grep xml`
ls $FIX_XML_PATH | grep xml
++ ls /home/administrator/testfix/fix
++ grep xml
+ FIX_FILE=fix_com.ibm.rational.clearcase.nt_i386.ifix0003_7.1.2.0000-7-
0-2009B-TESTFIX-CC-D090803_for_7.1.2.0000-7-1-0-02-00-2009B-D090617.xml

echo $FIX_FILE
+ echo fix_com.ibm.rational.clearcase.nt_i386.ifix0003_7.1.2.0000-7-1-0-
09B-TESTFIX-CC-D090803_for_7.1.2.0000-7-1-0-02-00-2009B-D090617.xml
fix_com.ibm.rational.clearcase.nt_i386.ifix0003_7.1.2.0000-7-1-0-02-00-2
TFIX-CC-D090803_for_7.1.2.0000-7-1-0-02-00-2009B-D090617.xml
cat $FIX_FILE
+ cat fix_com.ibm.rational.clearcase.nt_i386.ifix0003_7.1.2.0000-7-1-0-0
9B-TESTFIX-CC-D090803_for_7.1.2.0000-7-1-0-02-00-2009B-D090617.xml
cat: fix_com.ibm.rational.clearcase.nt_i386.ifix0003_7.1.2.0000-7-1-0-02
B-TESTFIX-CC-D090803_for_7.1.2.0000-7-1-0-02-00-2009B-D090617.xml: No su
or directory
In the result of the ls command, the path is not present.
Modify your script :
Code:
#!/bin/sh

FIX_XML_PATH=/home/administrator/testfix/fix
FIX_FILE=`ls $FIX_XML_PATH | grep xml`

echo $FIX_FILE
cat $FIX_XML_PATH/$FIX_FILE

jean-Pierre.
# 9  
Old 08-06-2009
thaks scottn, i got got that, i will keep in mind the way you told me.

Take care guys
-Adi
# 10  
Old 08-06-2009
The output from "ls" does not include" the directory name.
A quick fix is to "cd" to the directory first.
Other correspondents have raised potential issues with getting multiple hits. We can only comment if we can see sample filename(s). Your code is written as if the string "xml" can appear anywhere in the filename and you are only expecting one file.

Code:
#!/bin/sh

FIX_XML_PATH=/home/administrator/testfix/fix
FIX_FILE=`ls $FIX_XML_PATH | grep xml`

cd ${FIX_XML_PATH}

echo $FIX_FILE
cat $FIX_FILE

# 11  
Old 08-06-2009
For something that doesn't choke on multiple files or embedded spaces, use something like:
Code:
find $FIX_XML_PATH -type f -name "*xml*" | while file=$(line)
do
  basename "$file"
  cat "$file"
done

# 12  
Old 08-06-2009
Quote:
Originally Posted by mac4rfree
franklin, one interesting i found,

Code:
ad02 $ cat $a
10081551
10081599
10082234
10082259
20081134
20081159
30082232
10087721
kjlsab;kfd
kjbnaskj
kjabn;kj
akjldsb;k
akj;dhbsa
ad02 $ cat "$a"
cat: 0652-050 Cannot open aout.xml
bout.xml
cout.xml.
ad02 $ echo $a
aout.xml bout.xml cout.xml
ad02 $

here without quotes, it opens all the three files, but with quotes, it is throwing an error.
If there are more files the use of double quotes is not a good idea, but if you have file names with spaces in the variable then you have a problem. With double quotes the files are passed as one literal string, check the difference between:

Code:
cat "aout.xml bout.xml cout.xml"

and

Code:
cat aout.xml bout.xml cout.xml

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Homework & Coursework Questions

Cat/File Descriptor Question

For the command below, I need to understand what exactly the command does and provide an examples for which the output will be saved to file save2... From my understanding, if the file provides an error in the first half of the pipe, it'll save to save1 and will never give an error to save to... (2 Replies)
Discussion started by: ayz649
2 Replies

2. Shell Programming and Scripting

Simple cat and echo question

Apologies, probably a really simple problem: I've got a text file (nh.txt) with this in it: user1 email1 email2 user2 email1 email2 etc With the following basic script: for tline in $(cat nh.txt) do echo "**********" echo $tline done ... (3 Replies)
Discussion started by: nelmo
3 Replies

3. Shell Programming and Scripting

cat question

hello! why this works? cd /home/user cat * | ecasound -i stdin -o jack and this doesn't? cd /home/user/somedirectory cat * | ecasound -i stdin -o jack somedirectory are full with exe files which are the best source for this sort of noise thing (10 Replies)
Discussion started by: karlhungus
10 Replies

4. UNIX for Dummies Questions & Answers

Question regarding Cat

Can we concatenate say, I have a few files prefixing with 2009... So now i want all the 2009 files into one single file.. Can this be achieved???? (4 Replies)
Discussion started by: saggiboy10
4 Replies

5. Shell Programming and Scripting

cat question

Can any one guide me how can i accomplish this by script i continuously receive files via our ftp server into a certain folder is there a way i can take those files cat it to a new file by hour and create a new file when new hour starts? (4 Replies)
Discussion started by: shehzad_m
4 Replies

6. Shell Programming and Scripting

Easy cat question

I am having problems getting a list of filenames that I want from a directory. example: I have 3 files - filename.xxx.20110505.123030 filename.yyy.20110505.123030 filename.zzz.20110505.123030 There may be multiple xxx,... (3 Replies)
Discussion started by: Drenhead
3 Replies

7. OS X (Apple)

Question about cat and echo

Hello, I am trying to send text to a USB to serial adaptor and then to an external speech synthesizer. I tried using the cat and echo commands with no luck. I have gotten some audio output from my synthesizer using Kermit a terminal emulator, so I am pretty sure my synthesizer and my USB to serial... (1 Reply)
Discussion started by: jamesapp
1 Replies

8. Shell Programming and Scripting

cat in the command line doesn't match cat in the script

Hello, So I sorted my file as I was supposed to: sort -n -r -k 2 -k 1 file1 | uniq > file2 and when I wrote > cat file2 in the command line, I got what I was expecting, but in the script itself ... sort -n -r -k 2 -k 1 averages | uniq > temp cat file2 It wrote a whole... (21 Replies)
Discussion started by: shira
21 Replies

9. Shell Programming and Scripting

question about cat in script

hi all i have some script echo $$ > process-id d='cat process-id' if test-s "TMP"$d then echo "serv1" else echo "serv2" fi the variable d should contain the number of the process, instead of that it contains 'cat process-id' how shall i do that the d will contain only the number?... (6 Replies)
Discussion started by: naamas03
6 Replies

10. Shell Programming and Scripting

strange cat question.

Does anyone know what the microprograms behind cat (and other commands) are like? In what language are those programs designed? Is their source available somewhere? No particular reason, just wondering. I know it's a bit strange... (3 Replies)
Discussion started by: sanchopansa
3 Replies
Login or Register to Ask a Question