Linux 如何使用echo更改文本文件中的行?

Linux 如何使用echo更改文本文件中的行?,linux,unix,grep,echo,cat,Linux,Unix,Grep,Echo,Cat,假设我们有一个名为profile.cfg的文件,其中包含以下内容: user.name=Duvdevan user.email=duvdevan@duvdevan.duv user.web=http://duvdevan.duv user.country=Bosnia/Herzegovina user.age=26 user.biography="A web developer.\n\nLikes echo command..." 现在,我想更新第三行的内容,即user.web属性,并将其放置

假设我们有一个名为
profile.cfg
的文件,其中包含以下内容:

user.name=Duvdevan
user.email=duvdevan@duvdevan.duv
user.web=http://duvdevan.duv
user.country=Bosnia/Herzegovina
user.age=26
user.biography="A web developer.\n\nLikes echo command..."
现在,我想更新第三行的内容,即
user.web
属性,并将其放置在与当前相同的位置,以保持上面和下面的内容不变


到目前为止,我所尝试的是:
cat profile.cfg | grep user.web
,我得到了该行的值…

您可以使用
sed

$ sed 's#user.web=.*#user.web=http://NEW_DOMAIN#' file
user.name=Duvdevan
user.email=duvdevan@duvdevan.duv
user.web=http://NEW_DOMAIN
user.country=Bosnia/Herzegovina
user.age=26
user.biography="A web developer.\n\nLikes echo command..."

使用
-i
选项对文件进行内联更改,以便不需要重定向。

使用
sed可以轻松完成此操作

$ sed 's#user.web=.*#user.web=http://NEW_DOMAIN#' file
user.name=Duvdevan
user.email=duvdevan@duvdevan.duv
user.web=http://NEW_DOMAIN
user.country=Bosnia/Herzegovina
user.age=26
user.biography="A web developer.\n\nLikes echo command..."
使用
-i
选项对文件进行内联更改,这样就不需要重定向