I want to grab multiple lines in a file with a pattern that has a starting and an ending tag in an ungreedy way.  For example I have the following input:  file.txt  START test1 test2 foo END some more text  START test3 bar test4 test5 END even more  START baz test6 END   Now I want to look for bar and print out everything between START and END, so that I will get:  START test3 bar test4 test5 END   What I have so far is the following grep command:  grep -Pzo '(?s)START.*?bar.*?END' file.txt   The problem is, that this expression is greedy and prints out:  START      # starts at first "START"-tag, not the next one test1      # test2      # foo        # END        # some       # more text  #  START test3 bar test4 test5 END   It's not done with the grep flags --before-context / --after-context, because the count of lines before and after can differ.  The tool used by text-processing doesn't matter. It should work on a general RedHat system. Also the faster the tool grabs the lines, the better it will be. Because I have big logfiles of each about 150MB.  Can someone tell me, how to achieve my goal the best way?    Update:  Okay, I got it. I just had to think about how to construct my command from don_crisstis link. Here's the solution:  ed -s file.txt &lt;&lt;&lt; $'g/bar/?START?,/END/p\nq\n'   Thank you very much for all your very fast help!  And yes, finally it's a duplicate...
I have this file:  sometext1{ string1 }  sometext2{ string2 string3 }  sometext3{ string4 string5 string6 }   I want to search this file for a specific string and print everything before this string up to the opening { and everything after this string up to the closing }. I tried to achieve this with sed but if I try to print everything in the range /{/,/string2/ for example sed prints this:  sometext1{ string1 }  sometext2{ string2 sometext3{ string4 string5 string6 }   If I search for the string "string2" I need the output to be:   sometext2{ string2 string3 }   Thanks.
indentation of a whole paragraph $\dfrac{pq}{r}+\dfrac{qr}{p}+\dfrac{pr}{q}\in\Bbb Z\,\Rightarrow\, \dfrac{pq}{r},\dfrac{qr}{p},\dfrac{pr}{q}\in\Bbb Z$ Let $p,q,r$ be integers such that the symmetric sum of fractions $\dfrac{pq}{r}+\dfrac{qr}{p}+\dfrac{pr}{q}$ is an integer. Prove that each of the numbers: $\dfrac{pq}{r},\dfrac{qr}{p},\dfrac{pr}{q}$ is an integer. How to do this? Someone posted but deleted soon. Prove that the ideal $(X_1-a_1,...,X_n-a_n)$ is maximal in $K[X_1,\dots,X_n]$ Let $K$ be a field, and $a_1,\dots,a_n \in K$. Prove that the ideal $$(X_1-a_1,\dots,X_n-a_n)$$ is maximal in $K[X_1,\dots,X_n]$.   I tried proving that the only elements outside the ideal are the invertibles of $K$ (I should still prove that this implies maximality, but it shouldn't be too difficult).  Is there a better strategy, or another stategy? If the dual spaces are isometrically isomorphic are the spaces isomorphic? recover data after using dd command A grim and tragic question perhaps, but I'm curious:  What happens when a person that co-signed on a loan dies? Is the co-signer's estate potentially liable until the loan is paid off, the same as if the co-signer had borrowed the money themselves?  Or, does the responsibility for the loan die with the co-signer?  Does the bank/lender take on that risk? how can I reset a lost administrative password ,considering that Ubuntu and windows7 are both installed on the computer , considering also that "Boot up the machine,and after the BIOS screen, hold down the left Shift key." didn't logged me to any thing, just continue the loading of the system as normal?? What characters do I need to escape when using sed in a sh script? Take the following script:  #!/bin/sh sed 's/(127\.0\.1\.1)\s/\1/' [some file]   If I try to run this in sh (dash here), it'll fail because of the parentheses, which need to be escaped. But I don't need to escape the backslashes themselves (between the octets, or in the \s or \1). What's the rule here? What about when I need to use {...} or [...]? Is there a list of what I do and don't need to escape? Can one PC throw another? Proof of $A\cap(B\cup C) = (A\cap B)\cup(A\cap C)$ How do I change my timezone to UTC/GMT? Currently when I execute the date command from bash I get the following displayed  Thu May 17 12:21:00 IST 2012  Below is my timezone config based on executing dpkg-reconfigure tzdata     Current default time zone: 'Europe/Dublin'   Local time is now: Thu May 17 12:32:52 IST 2012.   Universal Time is now: Thu May 17 11:32:52 UTC 2012.     Any idea how I change from IST to UTC/GMT? Seeking QGIS tutorials and web resources? I wish to familiarize myself with the capabilities of QGIS up to and beyond QGIS version 3.0.   Can you recommend some good web resources and tutorials that would show me QGIS' capabilities?   I am interested in both using QGIS through its GUI and in developing applications using QGIS. CSS customized scroll bar in div Remount squashfs root filessytem read-write I am working on an embedded device. The fstab shows the following info:  &lt;file system&gt; &lt;mount pt&gt;      &lt;type&gt;  &lt;options&gt;         &lt;dump&gt; &lt;pass&gt; /dev/root       /               ext2    rw,noauto                           0               1 proc            /proc           proc    defaults                            0               0 devpts          /dev/pts        devpts  defaults,gid=5,mode=620             0               0 tmpfs           /tmp            tmpfs   defaults                            0               0 ramfs           /var            ramfs   defaults                            0               0 sys             /sys            sysfs   defaults                            0               0   Running the mount command I get this:  rootfs on / type rootfs (rw) /dev/root on / type squashfs (ro,relatime) proc on /proc type proc (rw,relatime) sys on /sys type sysfs (rw,relatime) devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620) ramfs on /var type ramfs (rw,relatime)   Which means that the root filesystem is read-only.  How can I remount the read-only part as read-write? Too big of a sofa Random errors on various sites when viewing main page Occasionally (very occasionally) when returning to the main page of a site by clicking on the logo I get the following message:     It was not possible to perform this tag search at this time due to an unexpected error.   This is odd because I'm not performing a tag search.  So far this has happened on both Movies &amp; TV and Cooking.  I have heard that others are getting this same message. "I left smoking", "I quit smoking", "I gave up smoking", "I stopped smoking" are these same? For various such sentences in many cases I get confused, it seems different for different cases. I want to know if someone left doing something for permanantly then what should be used? Also give some examples for different cases. Suppose... "I left my bag" means "I forgot my bag". but If I want to say the same for permanentaly "I left bringing my bag". Where should we use "stop" and "quit" then? Replace Tag of and xml file after pattern matching using shell I have an input xml file like below INPUT FILE &lt;ReconSummary&gt; &lt;entryName&gt;Total Deep&lt;/entryName&gt; &lt;Code&gt;777&lt;/Code&gt; &lt;License&gt;L&lt;/License&gt; &lt;Tran&gt;H20&lt;/Tran&gt; &lt;job&gt;1234&lt;/job&gt; &lt;/ReconSummary&gt;   &lt;ReconSummary&gt; &lt;entryName&gt;Total Saurav&lt;/entryName&gt; &lt;Code&gt;666&lt;/Code&gt; &lt;License&gt;L&lt;/License&gt; &lt;Tran&gt;H20&lt;/Tran&gt; &lt;job&gt;1234&lt;/job&gt; &lt;/ReconSummary&gt;   &lt;ReconSummary&gt; &lt;entryName&gt;Total Ankur&lt;/entryName&gt; &lt;Code&gt;555&lt;/Code&gt; &lt;License&gt;L&lt;/License&gt; &lt;Tran&gt;H20&lt;/Tran&gt; &lt;job&gt;1234&lt;/job&gt; &lt;/ReconSummary&gt;  I want to comment the tag if i find the pattern &quot;Total Deep&quot; so that the output file looks like below OUTPUT &lt;!--&lt;ReconSummary&gt; &lt;entryName&gt;Total Deep&lt;/entryName&gt; &lt;Code&gt;777&lt;/Code&gt; &lt;License&gt;L&lt;/License&gt; &lt;Tran&gt;H20&lt;/Tran&gt; &lt;job&gt;1234&lt;/job&gt; &lt;/ReconSummary&gt;--&gt;   &lt;ReconSummary&gt; &lt;entryName&gt;Total Saurav&lt;/entryName&gt; &lt;Code&gt;666&lt;/Code&gt; &lt;License&gt;L&lt;/License&gt; &lt;Tran&gt;H20&lt;/Tran&gt; &lt;job&gt;1234&lt;/job&gt; &lt;/ReconSummary&gt;   &lt;ReconSummary&gt; &lt;entryName&gt;Total Ankur&lt;/entryName&gt; &lt;Code&gt;555&lt;/Code&gt; &lt;License&gt;L&lt;/License&gt; &lt;Tran&gt;H20&lt;/Tran&gt; &lt;job&gt;1234&lt;/job&gt; &lt;/ReconSummary&gt;  Since i am new to shell scripting, can anyone help me out as to how i can apply this with the help of shell scripting? Get string inside parentheses, removing parentheses, with regex In Rey's vision, whose voice says "These are your first steps"?