Unix command help


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Unix command help
# 1  
Old 03-09-2002
Question Unix command help

I have a data file called "statistics.dat"

The first three lines are headers and the rest of the lines contain client id number followed by their statistical data.


For example,
line 1: 1 Header
line 2: 2 Header
line 3: 3 Header
line 4: 0801 9 10 2 1
line 5: 0802 7 11 4 6
.
line 18: 0890 2 6 9 12
.
.
line 30: 0930 14 8 4 9

I want to write a command string that will only display the first 3 lines and line 18.

This is what I have tried so far and it doesn't work:

head -3 statistics.dat | grep '0890'

I've also tried:

cat statistics.dat | head -3 | grep '0890'

I have tried lots of variations on the commands listed above but nothing seems to work. Can someone help me with this?

Am I using the right commands or are their other commands that I should be using?
# 2  
Old 03-09-2002
When you do:
head -3 statistics.dat | grep '0890'
this selects the first 3 lines and does not display them, but instead forwards them (pipes) into the next command for processing, and of course the grep will not find that string in that set of lines.

If those header lines were very easy to identify, a single grep command with two search arguments could do it, such as:

grep -e Header -e "^0890" statistics.dat

If not, do two separate commands:

head -3 statistics.dat
grep "^0890" statistics.dat

The carat is anchoring its search to the very beginning of each line (which I think is correct for your data) so that it will not accidentally find the search string somewhere else in the line. Here is a script that you can execute with a parameter:

Code:
#!/bin/sh
client=${1?Need one parameter - the client ID}
head -3 statistics.dat
grep "^$client" statistics.dat
exit 0

Jimbo
# 3  
Old 03-11-2002
Bug Thanks for your help!

Thanks Jimbo! for your help I now understand what the pipe "|" does. I was thinking that it was just used to separate the commands on the same line.I have to learn that there is more than just one way to write a command string that does the same thing.
I just got to carried away with that head command.

Thanks,

JJ
# 4  
Old 03-11-2002
Great! unix probably just got a lot more fun for you. Speaking of separators, the semicolon separates multiple commands on the same line. And || and && are command separators like semicolon, but conditional. The former means do 2nd command only if the 1st has an error, and the latter means do 2nd command only if the 1st has no error. They are not pipes - output is not forwarded to the 2nd command.

Code:
badcommand || echo 'not a good command'
pwd && echo 'is where I currently am'


Last edited by Jimbo; 03-11-2002 at 11:04 AM..
Jimbo
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

UNIX command to copy files from Windows to UNIX box

Hi Folks, I have a file name abc.xml in my windows machine at the location c:\ytr\abc.xml which I want to place at the unix box machine inside cde directory.. at the following location that is /opt/app/cde/ now the credentials of unix box are abc345 -->(dummyid) ftyiu88--->(dummy passwd) ... (4 Replies)
Discussion started by: punpun66
4 Replies

2. Shell Programming and Scripting

Specify an entire UNIX command as a command line argument

I'm trying to write a bash script called YN that looks like the following YN "Specify a question" "doThis" "doThat" where "doThis" will be executed if the answer is "y", otherwise "doThat". For example YN "Do you want to list the file dog?" "ls -al dog" "" Here's my attempt... (3 Replies)
Discussion started by: LeoKSimon
3 Replies

3. UNIX Desktop Questions & Answers

Can Unix access Windows' File through Command Prompt in Unix

Hi all, I wish to know whether Unix can access window's file in Unix's terminal? Apart from that, how to copy files or share files between Window and Unix? I get to know of secure copy, however, my company's Unix does not support the feature of secure copy? Any other method for me to share/... (5 Replies)
Discussion started by: jessy83
5 Replies

4. UNIX for Dummies Questions & Answers

New to Unix command line and have a question about the "sort" command

I am going through the Unix Made Easy second edition book by John Muster. So far it's been very informative and I can tell it may be a bit out of date. In one of the exercises it talks about the "sort" command and using it to sort column's of data etc. The "sort" command has changed a bit and... (1 Reply)
Discussion started by: budfoxcat
1 Replies

5. UNIX for Advanced & Expert Users

unix command : how to insert text at the cursor location via command line?

Hi, Well my title isn't very clear I think. So to understand my goal: I have a script "test1" #!/bin/bash xvkbd -text blabla with xbindkeys, I bind F5 key in order it runs my test1 script So when I press F5, test1 runs. I'm under Emacs/Vi and I press F5 in order to have "blabla" be... (0 Replies)
Discussion started by: xib.be
0 Replies

6. Shell Programming and Scripting

assign a command line argument and a unix command to awk variables

Hi , I have a piece of code ...wherein I need to assign the following ... 1) A command line argument to a variable e.g origCount=ARGV 2) A unix command to a variable e.g result=`wc -l testFile.txt` in my awk shell script When I do this : print "origCount" origCount --> I get the... (0 Replies)
Discussion started by: sweta_doshi
0 Replies

7. HP-UX

How to use more than one MPE command STREAM with Unix command in a single shell?

Hello, I have problem in writing the shell script involving MPE command STREAM related to HP-UX and Unix command. Script is sh "nlshCMD 'STREAM <job name1>' | 'SHOWJOB' | grep $HPJOBNUM" sh "nlshCMD 'STREAM <job name2>' | 'SHOWJOB' | grep $HPJOBNUM" sh "nlshCMD 'STREAM <job name3>' |... (1 Reply)
Discussion started by: bosskr
1 Replies

8. Shell Programming and Scripting

How to use more than one MPE command STREAM with Unix command in a single shell?

Hello, I have problem in writing the shell script involving MPE command STREAM related to HP-UX and Unix command. Script is sh "nlshCMD 'STREAM <job name1>' | 'SHOWJOB' | grep $HPJOBNUM" sh "nlshCMD 'STREAM <job name2>' | 'SHOWJOB' | grep $HPJOBNUM" sh "nlshCMD 'STREAM <job name3>' |... (0 Replies)
Discussion started by: bosskr
0 Replies

9. UNIX for Dummies Questions & Answers

wc command help.... and other unix command....... urgent

hi all. thanks for looking i am doing some homework. one question is that when type wc and then how to tell the program that we have finished entering data? also why do some operating systems report 22 as the number of bytes in the file above, while others only 20? thanks so much,... (1 Reply)
Discussion started by: dashi2k
1 Replies
Login or Register to Ask a Question