Extracting a text between ""


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extracting a text between ""
# 1  
Old 05-07-2008
Extracting a text between ""

Hi,

I am having trouble extracing a string between the quotes.

The OS in solaris 8

I have a directory which has solaris packages and i need to do pkginfo for all and search for uninstalled packages.

#ls -l

drwxr-xr-x 5 root other 512 Apr 14 17:41 SUNWxwplx
drwxr-xr-x 5 root other 512 Apr 14 17:41 SUNWxwpsr
drwxr-xr-x 3 root other 512 Apr 14 17:41 SUNWxwrtl
drwxr-xr-x 3 root other 512 Apr 14 17:41 SUNWxwrtx
drwxr-xr-x 5 root other 512 May 5 18:42 SUNWxwslb
drwxr-xr-x 5 root other 512 May 5 18:42 SUNWxwslx

# ls -l|awk '{print $9}'|xargs pkginfo |grep -i error
ERROR: information for "SUNWxwslb" was not found
ERROR: information for "SUNWxwslx" was not found

I need to extract only SUNWxwslb and SUNWxwslx

I tried using
ls -l|awk '{print $9}'|xargs pkginfo |grep -i error|awk '{print $4}'
and
ls -l|awk '{print $9}'|xargs pkginfo |grep -i error|nawk -F "\"" '{print $1}'

It didnt work.

Can someone point out a method to grep just the package name.

Thanks in advance.
# 2  
Old 05-07-2008
Code:
ls -l|awk '{print $9}'|xargs pkginfo |grep -i error  | nawk -F'"' '{print $2 }'

# 3  
Old 05-07-2008
Hi ,

I tried that before, but iam still getting the same
# ls -l|awk '{print $9}'|xargs pkginfo |grep -i error|nawk -F'"' '{print $2 }'
ERROR: information for "SUNWxwslb" was not found
ERROR: information for "SUNWxwslx" was not found
# 4  
Old 05-07-2008
ERROR: information for "SUNWxwslb" was not found
This is coming from std err, not std. out, so grep is not useful here

Code:
ls -l|awk '{print $9}'|xargs pkginfo 

# this can be shortened to: 

ls -1|xargs pkginfo 2> /dev/null
# note thats a ONE now not an L

# 5  
Old 05-07-2008
Iam sorry that was what iam not looking for, i need to grep for error line and extract the name within quotes.
The command you gave gives excluding the error line.



Quote:
Originally Posted by denn
ERROR: information for "SUNWxwslb" was not found
This is coming from std err, not std. out, so grep is not useful here

Code:
ls -l|awk '{print $9}'|xargs pkginfo 

# this can be shortened to: 

ls -1|xargs pkginfo 2> /dev/null
# note thats a ONE now not an L

# 6  
Old 05-07-2008
Tools

I'm sure you are checking on each package at a time.
I guess you can try breaking into two steps:
1. Capture the error in variable
2. Run awk on the variable

example:

temp1=`ls -l|awk '{print $9}'|xargs pkginfo |grep -i error`
echo $temp1 | awk -F'"' '{ print $2 }'

This should just echo the package name.
# 7  
Old 05-07-2008
Hi,

I tried and when i gave the first line it just displays the two lines
# temp1=`ls -l|awk '{print $9}'|xargs pkginfo|grep -i error`
ERROR: information for "SUNWxwslb" was not found
ERROR: information for "SUNWxwslx" was not found

# echo $temp1

no output.

Please let me know if something wrong.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

2. UNIX for Dummies Questions & Answers

Extracting Parts of String "#" vs "%"

Hello, I have a question regarding extracting parts of a string and the meaning of # and % in the syntax. I created an example below. # filename=/first/second/third/fourth # # echo $filename /first/second/third/fourth # # echo "${filename##*/}" fourth # # echo "${filename%/*}"... (3 Replies)
Discussion started by: shah9250
3 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. Shell Programming and Scripting

Using sed to find text between a "string " and character ","

Hello everyone Sorry I have to add another sed question. I am searching a log file and need only the first 2 occurances of text which comes after (note the space) "string " and before a ",". I have tried sed -n 's/.*string \(*\),.*/\1/p' filewith some, but limited success. This gives out all... (10 Replies)
Discussion started by: haggismn
10 Replies

5. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

6. Shell Programming and Scripting

Extracting text with "nawk"

Hi - I have a simple file (x.xml): <tag1>text 1</tag1> <tag2>text 2</tag2> <tag3>text 3</tag3> <tag4>text 4</tag4> <tag5>text 5</tag5> I am trying to run a simple nawk script against it in order to get the text contained within the tags: nawk 'BEGIN{FS=""} /tag1/{tag1=$3}... (3 Replies)
Discussion started by: nfr816
3 Replies

7. Shell Programming and Scripting

Extracting Complete Text Between " "

The script: for i in $(awk '/\".*\"/' list.txt) do echo $i done iist.txt: "Willie" "Willie Willie" "Willie Willie Wee" "Willie Willie Wee Wee" The results: "Willie" "Willie Willie" "Willie Willie Wee" "Willie (6 Replies)
Discussion started by: Trapper
6 Replies

8. Shell Programming and Scripting

read -p "prompt text" foo say "read: bad option(s)" in Bourne-Shell

Hallo, i need a Prompting read in my script: read -p "Enter your command: " command But i always get this Error: -p: is not an identifier When I run these in c-shell i get this error /usr/bin/read: read: bad option(s) How can I use a Prompt in the read command? (9 Replies)
Discussion started by: wiseguy
9 Replies

9. UNIX for Dummies Questions & Answers

Convert "text" to "packed-decimal"?

Is there a way with HP-UX Release 10.20 (but going to HP-UX 11) to convert a regular "text" file to a packed data format (such as is created by a Cobol program)? (2 Replies)
Discussion started by: HuskyJim
2 Replies
Login or Register to Ask a Question