[SOLVED] bash shell script read file word by word.
ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
If this isn't a shell script, please provide more information on what scripting/programming language you are using, and your Linux/UNIX distribution.
(Please note if this script is going to run on more than one Linux/UNIX distribution, sometimes POSIX or other standards are not fully/correctly implemented).
I just want $4 and how can I get it the double quote and },?
Thanks,
Well, you could just print it at the end of the line, like this;
Code:
#!/usr/bin/bash
if [ -x /bin/awk ]; then
/bin/awk -F":" '{print $4,"\"","\}"}' /path/to/the/filename
else
printf "I can't find awk\n"
fi
If you don't want the spaces, then you can eliminate the commas;
Code:
#!/usr/bin/bash
if [ -x /bin/awk ]; then
/bin/awk -F":" '{print $4,"\"","\}"}' /path/to/the/filename
else
printf "I can't find awk\n"
fi
I appreciate the quick response (as I'm about to go to sleep for the day).
If any of my posts (or any others) have helped you out, be sure to click the little scales icon next to my penguin.
(Or "Yes" to "Did you find this post helpful?")
That would be because I am a numpty and when I did it in my script I just used REPLY and then added line to this one for a reason I cannot explain
So it should just be:
Code:
#!/bin/bash
while read -r
do
set - ${REPLY//[\{\}:,\"]/}
# now simply call parameter position
echo $2
done<file
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.