Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.user > #243597
| From | "Paul M. Foster" <paulf@quillandmouse.com> |
|---|---|
| Newsgroups | linux.debian.user |
| Subject | Re: Replace line in file based on pattern |
| Date | 2022-01-03 03:00 +0100 |
| Message-ID | <DBkNI-26v-7@gated-at.bofh.it> (permalink) |
| References | <DBi9c-Mv-5@gated-at.bofh.it> <DBisy-SG-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On 1/2/22 6:20 PM, The Wanderer wrote: > On 2022-01-02 at 17:52, Paul M. Foster wrote: > >> Folks: >> >> In a script, I'd like to search for a pattern in a file, and replace >> that line entirely with a new line, once (not globally). I've tried > > What do you mean by "globally"? "Globally" just means I want to replace the first instance, rather than appending the 'g' modifier to the sed expression. > > If you mean that you want to only replace the first matching line in the > file, but leave any subsequent matching lines alone... I've never > actually had occasion to do that, but a bit of Googling (for 'sed first > match only') found me > > https://stackoverflow.com/questions/148451/how-to-use-sed-to-replace-only-the-first-occurrence-in-a-file > > which looks like at least the seed of a way to do it; see also below. > >> sed -i s/search/new_line/ >> >> but this only replaces the string itself. I want the script to find the >> line my search term is on, and replace the whole line with my >> replacement line. >> >> Anyone know how to do this? > > Without re-testing at the moment, I'd say from past experience that you > want: > > sed -i 's/^.*search.*$/new_line/' > > This matches the beginning of the line, followed by zero or more > characters, followed by the search string, followed by zero or more > characters, followed by the end of the line. This works, as I mentioned in another reply. The context here is a file which would have something like: ';extension=gd', to be replaced by 'extension=gd'. That is, I want to programmatically uncomment a line, in most cases. Paul
Back to linux.debian.user | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Replace line in file based on pattern "Paul M. Foster" <paulf@quillandmouse.com> - 2022-01-03 00:10 +0100
Re: Replace line in file based on pattern Andy Smith <andy@strugglers.net> - 2022-01-03 00:20 +0100
Re: Replace line in file based on pattern "Paul M. Foster" <paulf@quillandmouse.com> - 2022-01-03 03:00 +0100
Re: Replace line in file based on pattern The Wanderer <wanderer@fastmail.fm> - 2022-01-03 00:30 +0100
Re: Replace line in file based on pattern Greg Wooledge <greg@wooledge.org> - 2022-01-03 00:50 +0100
Re: Replace line in file based on pattern The Wanderer <wanderer@fastmail.fm> - 2022-01-03 02:20 +0100
Re: Replace line in file based on pattern Greg Wooledge <greg@wooledge.org> - 2022-01-03 02:50 +0100
Re: Replace line in file based on pattern "Paul M. Foster" <paulf@quillandmouse.com> - 2022-01-03 03:30 +0100
Re: Replace line in file based on pattern Andrei POPESCU <andreimpopescu@gmail.com> - 2022-01-15 13:40 +0100
Re: Replace line in file based on pattern "Paul M. Foster" <paulf@quillandmouse.com> - 2022-01-03 04:00 +0100
Re: Replace line in file based on pattern Greg Wooledge <greg@wooledge.org> - 2022-01-03 05:10 +0100
Re: Replace line in file based on pattern "Paul M. Foster" <paulf@quillandmouse.com> - 2022-01-03 14:40 +0100
Re: Replace line in file based on pattern David Wright <deblis@lionunicorn.co.uk> - 2022-01-04 20:50 +0100
Re: Replace line in file based on pattern "Paul M. Foster" <paulf@quillandmouse.com> - 2022-01-03 03:00 +0100
Re: Replace line in file based on pattern john doe <johndoe65534@mail.com> - 2022-01-03 07:50 +0100
csiph-web