A bit of explanation as to why yours wasn't behaving as desired. First, you don't need to escape the colon or comma which makes it easier to read:
Regular expression matching is greedy so "colon followed by zero or more characters (.*) followed by a comma will match
(all the way through the last comma) and not the desired dv01:at01.
I prefer to avoid using back references (\1 in the previous example) as they are fairly inefficient. This will work and should be more efficient:
The code matches a colon, then all characters that are not a comma up to the next comma (just what we want to match) and replaces it with a comma. The last replacement handles the case where the pattern is at the end of the line (no trailing comma).
I do observe that the other example is removing the characters before the colon, and your example indicates that you want everything between colon and comma removed. My example removes the :yyyy from xxxx:yyyy, which is what I assumed you wanted.
Last edited by agama; 05-10-2011 at 10:16 PM..
Reason: Clarification
Hello,
I have the following line in one of my shell scripts. It works fine when the search string($SERACH_STR) exists in the logfile($ALERTLOG) but if the search string does not exist this line errors out at run time. Is there a way to make this line return 0 if it is not able to find the... (4 Replies)
Write a sed script to extract the year, rank, and stock for the most recent 10 years available in the file top10_mktval.csv, and output in the following format:
------------------------------
YEAR |RANK| STOCK
------------------------------
2007 | 1 | Exxon... (1 Reply)
Okay, title is kind of confusion, but basically, I have a lot of scripts on a server that I need to replace a ps command, however, the new ps command I'm trying to replace the current one with pipes to sed at one point. So now I am attempting to create another script that replaces that line.
... (1 Reply)
Hi guys,
I'm currently trying to understand a piece of shell script and it has some sed commands. I've been looking through sed tutorials to figure out what it does but still no luck :confused:
Can any of you guys tell me what this particular command does?
sed -i '1i\.options' a/*
... (1 Reply)
Hi, I'm trying to find the first field in a text file with the below sed command but it doesn't seem to be correct for running on Solaris.. It has no problem running on AIX. Anyone got a suggestion what the problem is?
sed 's/^\(\+\) /OK/'
The eventual goal is to separate the columns in a... (5 Replies)
for j in $(cat ${list_B})
do
to_replace_2=$(grep $j ${useralias}_2)
sed "s/^${j}/${to_replace_2}/p" ${entries} > ${entries}_2
mv ${entries}_2 ${entries}
done
Hi,
I've the above sed command running in a script. Its basically looping through a file and replacing its beginning of line... (8 Replies)
Hi All,
I am trying to replace a string in a oracle LDT file file extension .ldt.
I am using the following command:
sed "s/Test Number Viewer/Test Number 1/g" TEST_LIEN_FORM.ldt > TEST_LIEN_FORM.ldt.tmp
mv TEST_LIEN_FORM.ldt.tmp TEST_LIEN_FORM.ldt
But after the command, the file... (2 Replies)
Hey all,
so I've been experimenting with SED today, no experience before today, so if you're not patient, stop reading now! :P
I will attempt to explain this as simply as possible, without having to post massive walls of shitty code. Basically, I've created a small sed script to go through an... (9 Replies)
Hi,
I am running a script sample.sh in bash environment .In the script i am using sed and awk commands which when executed individually from terminal they are getting executed normally but when i give these sed and awk commands in the script it is giving the below errors :-
./sample.sh: line... (12 Replies)
How to work x in sed command?
I know x command is swaps the contents of pattern space and hold space. But i am unable to understand it's working? (4 Replies)
Discussion started by: Vartika18
4 Replies
LEARN ABOUT OPENDARWIN
funcombine
funcombine(7) SAORD Documentation funcombine(7)NAME
FunCombine - Combining Region and Table Filters
SYNOPSIS
This document discusses the conventions for combining region and table filters, especially with regards to the comma operator.
DESCRIPTION
Comma Conventions
Filter specifications consist of a series of boolean expressions, separated by commas. These expressions can be table filters, spatial
region filters, or combinations thereof. Unfortunately, common usage requires that the comma operator must act differently in different
situations. Therefore, while its use is intuitive in most cases, commas can be a source of confusion.
According to long-standing usage in IRAF, when a comma separates two table filters, it takes on the meaning of a boolean and. Thus:
foo.fits[pha==1,pi==2]
is equivalent to:
foo.fits[pha==1 && pi==2]
When a comma separates two spatial region filters, however, it has traditionally taken on the meaning of a boolean or. Thus:
foo.fits[circle(10,10,3),ellipse(20,20,8,5)]
is equivalent to:
foo.fits[circle(10,10,3) || ellipse(20,20,8,5)]
(except that in the former case, each region is given a unique id in programs such as funcnts).
Region and table filters can be combined:
foo.fits[circle(10,10,3),pi=1:5]
or even:
foo.fits[pha==1&&circle(10,10,3),pi==2&&ellipse(20,20,8,5)]
In these cases, it is not obvious whether the command should utilize an or or and operator. We therefore arbitrarily chose to implement the
following rule:
o if both expressions contain a region, the operator used is or.
o if one (or both) expression(s) does not contain a region, the operator used is and.
This rule handles the cases of pure regions and pure column filters properly. It unambiguously assigns the boolean and to all mixed cases.
Thus:
foo.fits[circle(10,10,3),pi=1:5]
and
foo.fits[pi=1:5,circle(10,10,3)]
both are equivalent to:
foo.fits[circle(10,10,3) && pi=1:5]
[NB: This arbitrary rule replaces the previous arbitrary rule (pre-funtools 1.2.3) which stated:
o if the 2nd expression contains a region, the operator used is or.
o if the 2nd expression does not contain a region, the operator used is and.
In that scenario, the or operator was implied by:
pha==4,circle 5 5 1
while the and operator was implied by
circle 5 5 1,pha==4
Experience showed that this non-commutative treatment of the comma operator was confusing and led to unexpected results.]
The comma rule must be considered provisional: comments and complaints are welcome to help clarify the matter. Better still, we recommend
that the comma operator be avoided in such cases in favor of an explicit boolean operator.
SEE ALSO
See funtools(7) for a list of Funtools help pages
version 1.4.2 January 2, 2008 funcombine(7)