Linux vi文件内容修改

时间:2018-05-13 16:32:14

标签: linux unix sed vi

假设我在名为test的文件中有这些:

u001:x:comp111:mark_henry
u002:x:comp321:zack_mike
u003:x:comp132:chris_white

我想打开该文件,转到包含chris_white的行,并将其更改为chris_brown,使其变为u003:x:comp132:chris_brown。我正在考虑使用sed命令这样做,但我不确定如何。

2 个答案:

答案 0 :(得分:1)

使用sed,以下方法可以在不打开文件chris_white的情况下将所有chris_brown替换为test

sed -i -e 's/chris_white/chris_brown/g' test

如果您要在test中打开文件vi editor并替换,请按照以下步骤操作,

1)vi test

2)输入:%s/chris_white/chris_brown/g

3)按Enter键

这会将文件chris_white中所有chris_brown替换为test

答案 1 :(得分:0)

使用vi,您需要比基本ed更多的努力。

echo "s/chris_white/chris_brown/
w
q" | ed -s test

您可以使用printf将行作为参数写入:

printf "%s\n" "s/chris_white/chris_brown/" w q | ed -s test