I decided to use neutronscott's solution, which I understand except the effect of these two expressions:
A group which consists of a single square bracket? I would have written the single square bracket without the enclosure but this does not work obviously.
Last edited by zaxxon; 06-12-2014 at 05:53 AM..
Reason: typo
I decided to use neutronscott's solution, which I understand except the effect of these two expressions:
A group which consists of a single square bracket? I would have written the single square bracket without the enclosure but this does not work obviously.
If you understood the meaning of a repetition of a non-matching bracket expression (such as [^[]* which matches zero or more occurrences of any character except [), I'm surprised that you didn't understand the meaning of the matching bracket expression [[] which matches one occurrence of the [ character. Similarly, [^]] matches any character other than ] and []] matches a ].
You have to use the bracket expression [[] or escape the opening bracket \[ to distinguish it as a character to be matched (rather than the start of a bracket expression). In some contexts, you do not need to use a bracket expression or an escape to specify a closing bracket, but the meaning is is the same if you use []] and it is symmetric with the [[] if you have an editor that pairs up opening and closing parentheses, braces, and brackets.
These 2 Users Gave Thanks to Don Cragun For This Post:
You have to use the bracket expression [[] or escape the opening bracket \[
Ok, I would have written it escaped. So far I never used the grouping to avoid escaping - I was not aware this is an "allowed" usage of the square brackets.
It's now clear to me, thanks.
Last edited by zaxxon; 06-12-2014 at 08:48 AM..
Reason: typo
Both suggestions could be reduced a bit, when taking into account sed's greedy matchin property, notably \[.*\] matches everything between the first square bracket until the last, from the point of where sed's is looking at that moment. Thus:
CarloM's approach, with the two dashes inserted:
And NeutronScott's approach..
(the original will fail with more than two square bracket episodes)
These 3 Users Gave Thanks to Scrutinizer For This Post:
Yes, sorry. It's just clever escaping. Like one would ps | grep [s]omething. I began to use this more because in awk, depending on quoting/context, often times you need to escape your escapes since they're really processed twice, and it gets ugly so I tend to avoid \ when possible now.
Quote:
Originally Posted by Scrutinizer
And NeutronScott's approach..
(the original will fail with more than two square bracket episodes)
The * after the grouping allows it to repeat. But I see mine doesn't perform correctly in the last two cases.
I also didn't think of not needing to match & sub the last part. That's definitely shorter.
Both suggestions could be reduced a bit, when taking into account sed's greedy matchin property, notably \[.*\] matches everything between the first square bracket until the last, from the point of where sed's is looking at that moment. Thus:
CarloM's approach, with the two dashes inserted:
Note that that isn't just slightly shorter, it also corrects the output to match Zaxxon's requirement - my original produced different output since it left any non-leading text not inside brackets.
Hi All,
Hope you all are doing good. Yesterday in my project i came across a scenario which i can not guess why it was working in one region and why it was not in another region. Please find my issue below.
I am using AIX version 6.0 of UNIX in my project, in shell scripting i have the... (1 Reply)
I wanted to store the number inside the square bracket between colon( : ) and closing suqre bracket(]) in some variable.
Suppose I have lines like :
Input file :
20140320 00:08:23.846 INFO 84] - anything in line
20140320 00:08:23.846 Test 589] - Virtual and lab lab anything... (18 Replies)
I wanted to compare the value inside the Squre bracket after Colon ( : ) based on any value(seperated by or operator | ) inside the variable Thread and if match found then wnated to store in output file
Input file :
20140320 00:08:43.918 INO 35] - Corporate hub is
20140320 00:08:43.918... (2 Replies)
Hi All,
After searching about this, I could find some solutions but I am not sure why it is not working in my case.
I have a text file with contents between two square brackets. The text file looks like this:
Use tags when you post any code so others can easily read your code. You can... (2 Replies)
Hi All,
I have a text file which looks like this:
computer programming
systems engineering
I want to get rid of these square brackets and also the text that is inside these brackets. So that my final text file looks like this:
computer programming
systems engineering
I am using... (3 Replies)
hi guys,
i'm writing a script that looks for a unquie id in a file and replaces a string between two square brackets on the same line as the unquie id:
.......
.......
0001 zz 43242 replace this text] name
0002 sd 65466 UK] country
.......
.......
how can i find line with id 0001... (6 Replies)
Hello,
Can someone please explain to me the following line,
] && break
I do not understand why two test square brackets are used.
Thanks,
Shantanu
---------- Post updated at 03:38 PM ---------- Previous update was at 03:35 PM ----------
And, also why there's a $ before (echo $c |... (5 Replies)
Hi,
I just came across an interesting shell script syntax like the one below:
] && (trap 'rm -rf ${WORK_DIR}/*.$$; echo "\n\nInterrupted !!\n\n"; exit 4' 1 2 3 15)
Can someone please explain the code snippet above?
The trap command bit is fine but ] && is the hazy part.
Generally we use an... (2 Replies)
One of the senior administrators gave me a shell script to modify and it begins as follows:
if ] && ]
{more code follows}
Why the double square brackets? (10 Replies)