An Idea for Tokenizing


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting An Idea for Tokenizing
# 1  
Old 06-06-2005
An Idea for Tokenizing

One of the monitoring tools in Java is called `jps`, and it monitors all Java processes that are run by the user, an example output would be like this:

3459 Jps
2348 test
2311 Util

where the first column represents Process IDs and the second column represents Java processes names. Therefore, if I wanted to find the process ID for some Java process, say test, I could type `jps | grep test` and then take the first argument in the line, which would be the process ID.

Now I had an idea to do it in a simpler way (rather than just writing a C or Java program), I could write a simple sh script that goes like this (call it tokenizer)

Code:
#!bin/sh
echo $1

and by typing `chmod +x tokenizer` and then: `jps | grep test | tokenizer` I would think I should get 2348 as an output to the shell, which is the PID for `test` Java process, but that did not happen. Anybody know why?
# 2  
Old 06-06-2005
This is because the script you have written does one hing only, it prins out the first command line argument passwd to it.

A better way to do this would be to put the processing inside the script.

for example:
Code:
#!/bin/ksh
# jpsearch.ksh
#
jps | awk "/$1/{print \$1}"

note you will need to give the full path to jps for this to sure to work.

then you would just chmod +x the file: and run it as
./jpsearch test
# 3  
Old 06-06-2005
Thanks for the solution, isn't the piping supposed to pass a line from grep as command line arguments for the script?
# 4  
Old 06-06-2005
Quote:
Originally Posted by neked
Thanks for the solution, isn't the piping supposed to pass a line from grep as command line arguments for the script?
No, the output from the pipe is redirected to stdin for the command after the pipe. The comand line arguments are read when the program is executed,before stdin is opened.
# 5  
Old 06-07-2005
Still, it is possible to do in a shellscript what neked wants. The task is to read any line of input, "tokenize" (split it at word boundaries) it and put it to <stdout>. The following should do the trick:

Code:
#!/bin/ksh

line=""
word=""
while read line ; do
     while [ -n "$line" ] ; do
          print - "$line" | read word, line
          print - "$word"
     done
done

bakunin
# 6  
Old 06-07-2005
Quote:
Code:
#!/bin/ksh

line=""
word=""
while read line ; do
     while [ -n "$line" ] ; do
          print - "$line" | read word, line
          print - "$word"
     done
done

You would need a little bit more logic in there to provide answer to the original problem. You would need to test see if it was the correct name of the process being searched for before printing $word
# 7  
Old 06-07-2005
Quote:
Originally Posted by reborg
You would need a little bit more logic in there to provide answer to the original problem. You would need to test see if it was the correct name of the process being searched for before printing $word
Not really, as this was only intended to replace the original "tokenizer.sh" from nekeds first post, where he suggested a sole "echo $1" to do the tokenizing. He confused <stdin> and the commandline there an i wanted to show him how to implement his original idea correctly. I do NOT think that this "tokenizing" is useful or a recommendable approach though.

bakunin
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

I have no idea how to solve this :/

I am trying to make a script that will execute different things by the input Input: #/bin/bash echo "Test script" read cake if then echo "cake it is" fi Output: 1 : bad variable nameake test.sh: 8: test.sh: Syntax error: end of file unexpected (expecting "then") (0 Replies)
Discussion started by: kitay
0 Replies

2. Shell Programming and Scripting

Problem in tokenizing the string

Supposed I have a string in the format: <service_name> = <ldap user FDN> : <password> like DNS = cn=user1,o=company : pwd I want to tokenize like: service name:DNS UserName: cn=user1,o=company Password: pwd. Because of the '=' sign between Service Name and LDAP Name I not... (8 Replies)
Discussion started by: saurabhkoar
8 Replies

3. Shell Programming and Scripting

need a new idea for a script

Hi all, I now have project in UNIX Solaris and I want to have some new ideas to execute it, so I hope you help me finding new ideas in scripting or some infrastructure .bye (1 Reply)
Discussion started by: hard_revenge
1 Replies

4. Shell Programming and Scripting

string tokenizing

I have a string that looks like this: blahblahblah_^substring^_blahblahblah I need to extract substring, the bit between the ^ characters, into another string variable. This will be in a bash shell script. Thanks. (2 Replies)
Discussion started by: daflore
2 Replies

5. Shell Programming and Scripting

Tokenizing a String in unix

Hi All, I have String i want to tokenize based on one delimiter. Original String is -pComments.properties,-iPELF4 i want to tokenize the original string based on ',' (comma) as delimiter and collect them individually like string1=-pComments.properties string2=-iPELF4 ... (1 Reply)
Discussion started by: rajeshorpu
1 Replies

6. Shell Programming and Scripting

help... no idea what to use

my issue now is i have a txt file containing a list like below i want to create a script that will add a constant text "Find this name" at the start and "at your directory" at the end. every line should be added by phrase at the start and end. Each line of the file should look like "Find... (4 Replies)
Discussion started by: dakid
4 Replies

7. Shell Programming and Scripting

Errors-- Any Idea

Getting some errors when i run this script.. ./xml_load_process.txt: -jar: not found ./xml_load_process.txt: syntax error at line 31 : `then' unmatched any ideas...really miffed at my inability to spot the error.... #!/bin/ksh # set -o xtrace # set environment variables export... (3 Replies)
Discussion started by: jazz21
3 Replies

8. Shell Programming and Scripting

b-shell: any better idea for this one?Thanks!!

I'm new to the script programming and I have this piece of code (repeatedly used) in my program: while : do ................ ans=`ckyorn -p "Do you want to continue?"` if || || || ; then break elif || ; then echo "Aborting..." exit... (2 Replies)
Discussion started by: bluemoon1
2 Replies

9. Shell Programming and Scripting

Here is an interesting idea...

Does anyone know how to test if an ethernet interface is alive, or accepting connections? Here is the scenario - I have rsc and sc console interfaces on some Suns. There are some sporadic vulnerability scans that send them out to lunch when they run the scans. I have to login to the host and reset... (0 Replies)
Discussion started by: lm_admin_dh
0 Replies

10. Shell Programming and Scripting

Limitations of awk? Good idea? Bad idea?

Keeping in mind that I'm relatively comfortable with programming in general but very new to unix and korn/bourne shell scripts.. I'm using awk on a CSV file, and then performing calculations and operations on specific fields within specific records. The CSV file I'm working with has about 600... (2 Replies)
Discussion started by: yongho
2 Replies
Login or Register to Ask a Question