Remove exact matching word using sed
28,944
In the above string, you don't need start-of-word/end-of-word markers and you may use:
echo 'foggy light' | sed 's/foggy//g'
For the additional question in the comment:
Indeeed, my sed version
sed --version
sed (GNU sed) 4.2.2
supports the Syntax with \<...\>
echo 'foggy foggylight' | sed 's/\<foggy\>//g'
foggylight
If it doesn't work for you, report your sed version and read its manpage. For my sed, this syntax works too:
echo 'foggy foggylight' | sed 's/\bfoggy\b//g'
foggylight
\b
can be memorized as boundary.
Related videos on Youtube
Author by
Josef Klimuk
Updated on September 18, 2022Comments
-
Josef Klimuk over 1 year
I want to remove word 'foggy' from the string. It fails. Why?
echo 'foggy light' | sed 's/\<foggy\>//g'
-
muru about 6 yearsWhat version of Ubuntu? What's the output of
sed --version
? -
muru about 6 years@userunknown of course: GNU sed, installed by default on all versions of Ubuntu, has
\<
and\>
for matching start-of-word and end-of-word. I suspect this is yet another Android question. OP has been know to post a number of questions about some Android app that provides Unix commands, while pretending it is Ubuntu OP is using. -
datacarl about 6 yearsFor removing the word foggy in above scenario, you don't need start-of-word/end-of-word-markers.
-
Josef Klimuk about 6 yearssed version 4.0
-
muru about 6 yearsWhich it is not on any current version of Ubuntu: packages.ubuntu.com/search?keywords=sed, so yet again an off-topic question.
-
-
muru about 6 years
-
Josef Klimuk about 6 yearsOk. And how to drop just the word foggy alone, not touching foggylight? echo 'foggy foggylight' | sed 's/foggy//g'
-
datacarl about 6 years@JosefKlimuk: Added extension