How can I remove the beginning of a word using grep ? Ex: I have a file that contains:
www.abc.com
I only need the part
abc.com
Sorry for the basic question. But have no experience with Linux.
You don't edit strings with grep
in Unix shell, grep
is usually used to find or remove some lines from the text. You'd rather use sed
instead:
$ echo www.example.com | sed 's/^[^\.]\+\.//'
example.com
You'll need to learn regular expressions to use it effectively.
Sed can also edit file in-place (modify the file), if you pass -i
argument, but be careful, you can easily lose data if you write the wrong sed
command and use -i
flag.
From your comments guess you have a TeX document, and your want to remove the first part of all .com domain names. If it is your document test.tex
:
\documentclass{article}
\begin{document}
www.example.com
example.com www.another.domain.com
\end{document}
then you can transform it with this sed
command (redirect output to file or edit in-place with -i
):
$ sed 's/\([a-z0-9-]\+\.\)\(\([a-z0-9-]\+\.\)\+com\)/\2/gi' test.tex
\documentclass{article}
\begin{document}
example.com
example.com another.domain.com
\end{document}
Please note that:
[a-z0-9-]\+\.
\(
and \)
) to indicate the first and the second part of the URL, and I replace the entire match with its second group (\2
in the substitution pattern)\+
repition means at least one match)i
flag in the end)g
flag in the end)If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With