Sponsored Content
Top Forums Shell Programming and Scripting SED help - cleaning up code, extra spaces won't go away Post 302416005 by Matthias03 on Saturday 24th of April 2010 08:44:20 AM
Old 04-24-2010
SED help - cleaning up code, extra spaces won't go away

Hello,

W/in the script I'm working on, I have a need to take a column from a file, and format it so I can have a variable that will egrep for & invert the regex from another file.

My solution is this:
Code:
VAR=`awk -F, '{print $2}' $FAIL | sed 's/-i/\|/g'`
VAR2=`echo $VAR | sed 's/ //g;s/^.\{1\}//g'`

egrep "$VAR2" file.txt >> newfile.txt
egrep -v "$VAR2" file.txt >> newfile.txt

The above works, but it's just ugly sed code.

All together...
input.txt:
Code:
-h a, -i b, -j c
-h d, -i e, -j f
-h g, -i h, -j i

Code:
VAR=`awk -F, '{print $2}' input.txt | sed 's/-i/\|/g'`

... echo $VAR, prints: | b | e | h

So I'm running the variable again, through "another filter":
Code:
VAR2=`echo $VAR | sed 's/ //g;s/^.\{1\}//g'`

... echo $VAR2, prints b|e|h
... which is what I'd need for a good egrep command.

What I don't understand, why 'this' isn't working:
Code:
VAR=`awk -F, '{print $2}' input.txt | sed 's/-i/\|/g;s/^.\{1\}//g;s/ //g'`

???
It'll produce something like this:
b e h
... I'm losing the "|", and the spaces are still there?

Can someone please help me understand what I'm doing wrong w/ SED? I can get the results I want, but it's ugly. Is what I'm doing correct? Lastly... if there's nothing wrong w/ how I'm doing things... is there a better or more efficient way?

Thanks everybody.

Last edited by vgersh99; 04-24-2010 at 09:53 AM.. Reason: code tag added
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

To remove the extra spaces in unix

Hi... I am quite new to Unix and would like an issue to be resolved. I have a file in the format below; 4,Reclaim,ECXTEST02,abc123,Harry Potter,5432 6730 0327 5469,0603,,MC,,1200,EUR,sho-001,,1,,,abc123,1223 I would like my output to be as follows; 4,Reclaim,ECXTEST02,abc123,Harry... (4 Replies)
Discussion started by: Sho
4 Replies

2. Shell Programming and Scripting

Remove extra spaces in a line

Hi, I need a help in deleting extra spaces in a text. I have a huge file, a part of it is :- 3 09/21/08 03:32:07 started undef mino Oracle nmx004.wwdc.numonyx.com Message Text : The Oracle session with the PID 1103 has a CPU time ... (6 Replies)
Discussion started by: vikas027
6 Replies

3. Shell Programming and Scripting

remove extra spaces between fields

Hi, I have a source file as mentioned below: I want to remove all the extra spaces between the fields. a b--------|sa df-------|3232---|3 sf sa------|afs sdf-----|43-----|33 a b c------|adfsa dsf---|23-32|23 *Here '-' idicates spaces Now, I want output as below: a b|sa df|3232|3... (7 Replies)
Discussion started by: srilaxmi
7 Replies

4. Shell Programming and Scripting

How to remove extra spaces from a string??

Hi, I have a string like this and i want to remove extra spaces that exists between the words. Here is the sentence. $string="The small DNA genome of hepadnaviruses is replicated by reverse transcription via an RNA intermediate. This RNA "pregenome" contains ... (2 Replies)
Discussion started by: vanitham
2 Replies

5. Shell Programming and Scripting

clear extra spaces and tabs in a file

Any help appreciated Thanks sample input: > (extra spaces&tabs in here) test1 (extra spaces&tabs in here) 123.123.123.123 (extra spaces&tabs in here) abc (extra spaces&tabs in here) 123 --- < (extra spaces&tabs in... (3 Replies)
Discussion started by: goofist
3 Replies

6. Shell Programming and Scripting

Remove of extra spaces from the trailing

HI, I need the help from the experts like I have created one file with text like: a b c d e f g h i j k l So my question is that i have to write the script in which like in the first sentence it will take only one space after d and remove all the extra space in the end.I dont... (8 Replies)
Discussion started by: bhanudhingra
8 Replies

7. Shell Programming and Scripting

Removing extra unwanted spaces

hi, i need to remove the extra spaces in the filed. Sample: abc~bd ~bkd123 .. 1space abc~badf ~bakdsf123 .. 2space abc~bqed ~bakuowe .. 3space output: abc~bd ~bkd123 .. 1space abc~badf~bakdsf123 .. 2space abc~bqed~bakuowe .. 3space i used the following command, (2 Replies)
Discussion started by: anshaa
2 Replies

8. Shell Programming and Scripting

Removing extra unwanted spaces

hi, i need to remove the extra spaces in the 2nd field. Sample: abc|bd |bkd123 .. 1space abc|badf |bakdsf123 .. 2space abc|bqe |bakuowe .. 3space Output: abc|bd|bkd123 abc|badf|bakdsf123 abc|bqe|bakuowe i used the following command, (9 Replies)
Discussion started by: anshaa
9 Replies

9. Shell Programming and Scripting

Have problem with extra EOLs in my CSV - need help cleaning out

Hi Everyone, Searching the forum, I came across another closed thread, that appears to be either the same problem, or very close to what I'm experiencing. Closed thread for reference is at: https://www.unix.com/shell-programming-and-scripting/241664-removing-cr-lf-till-number-fields-full.html ... (4 Replies)
Discussion started by: richardsantink
4 Replies

10. Shell Programming and Scripting

Grep string causes extra spaces

Hello, I have an xml file and my aim is to grab each line in keywords file and search the string in another file. When keyword is found in xml file,I expect the script to go to previous line in the xml file and grab the string/value between two strings. It's almost working with an error. tab... (6 Replies)
Discussion started by: baris35
6 Replies
EXIFGREP(1)						      General Commands Manual						       EXIFGREP(1)

NAME
exifgrep - select and reformat the output of exifprobe SYNOPSIS
exifgrep [options] [egrep_options] egrep_pattern [NOT egrep-pattern] filename(s) DESCRIPTION
Exifgrep is a shell script which applies egrep(1) to the output of exifprobe -L, permitting easy selection and minor reformatting of output items. exifprobe is small, fast, and utterly sycophantic in its desire to report everything it finds in an image. exifgrep applies the regular expression matching capabilities of egrep to the output barrage to extract only wanted information. exifgrep also performs a mild form of selection on the output fields of exifprobe -L. Many items reported by exifprobe are represented in the image file by a number which compactly represents a defined value. E.g. exifprobe -L may report TIFF.Ifd1.ResolutionUnit = 2 = 'pixels per inch' where the value "2" must be interpreted to mean that resolution values (TIFF.IFd1.Xresolution and IFF.IFd1.YResolution) are recorded in pixels per inch, rather than, say, pixels per centimeter. exifprobe reports both fields; exifprobe may also report interpreted values for items which are recorded in unfamiliar units, such as JPEG.APP1.Ifd0.Exif.FNumber = 5.6 APEX = 'f7.0' In all such cases, exifgrep reports (by default) only the "human readable" field: TIFF.Ifd1.ResolutionUnit = 'pixels per inch' JPEG.APP1.Ifd0.Exif.FNumber = 'f7.0' unless the "-num" option is given to select the numerical value. In addition, a `variable' format may be selected ("-var") which eliminates whitespace, providing a format which typical shells may use directly to set variables for further processing. E.g. TIFF.Ifd1.ResolutionUnit='pixels per inch' JPEG.APP1.Ifd0.Exif.FNumber='f7.0' OPTIONS
-r file arguments may be directories, which will be searched via find for all image types recognized by exifprobe. -n force exifprobe to print a filename for each line of its output, which exifgrep will turn into a comment at the end of each matching line. -t force exifprobe to print tag numbers for all itemes that have them, so that matches may be made on hex or decimal tag numbers. -c turn on color output from exifprobe -h print a usage message (help) -var report in "variable" format, which may be directly `sourced' by any Bourne-compatible shell (except that most shells will insist that the dots must be replaced, e.g. by underscores). -export report in "variable" format, but with a Bourne-compatible export command -num report numerical values rather than interpreted strings, for fields which have both. NOTE: the -var and -export options are obsolescent; they are retained for compatibility with earlier versions of exifprobe. A post-proces- sor such as reformat.sh may be more effective for the current version if shell-compatible output is desired. Any option not recognized by the script will be passed on to egrep. The first non-option argument will be used as the pattern passed to egrep. This may be followed by the keyword NOT and an expression rep- resenting matches to be rejected. This pattern will be passed to egrep -v. Only one argument of each type may be given, and the "accept" expression (if given) must appear before the "reject" expression. All remaining arguments are interpreted as image filenames. SEE ALSO
exifprobe(1) AUTHOR
Duane H. Hesser dhh@virtual-cafe.com LOCAL EXIFGREP(1)
All times are GMT -4. The time now is 05:34 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy