Linux vi文件内容修改
假设我在一个名为test的文件中有以下内容:Linux vi文件内容修改,linux,unix,sed,vi,Linux,Unix,Sed,Vi,假设我在一个名为test的文件中有以下内容: u001:x:comp111:mark_henry u002:x:comp321:zack_mike u003:x:comp132:chris_white 我想打开该文件,转到有chris\u-white的行,并将其更改为chris\u-brown,使其成为u003:x:comp132:chris\u-brown。我正在考虑使用sed命令来执行此操作,但我不确定如何执行。使用sed,下面的方法可以将所有出现的chris_-white替换为chris
u001:x:comp111:mark_henry
u002:x:comp321:zack_mike
u003:x:comp132:chris_white
我想打开该文件,转到有
chris\u-white
的行,并将其更改为chris\u-brown
,使其成为u003:x:comp132:chris\u-brown
。我正在考虑使用sed
命令来执行此操作,但我不确定如何执行。使用sed,下面的方法可以将所有出现的chris_-white
替换为chris_-brown
,而无需打开文件test
sed -i -e 's/chris_white/chris_brown/g' test
如果要在vi编辑器
中打开文件test
并进行替换,请执行以下步骤
1) vi测试
2) 键入:%s/chris_-white/chris_-brown/g
3) 按回车键
这将替换文件中所有出现的
chris_-white
到chris_-brown
,test与vi相比,您需要付出更多的努力
sed -i -e 's/chris_white/chris_brown/g' test
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
我不确定-I
选项是否适用于所有Unix操作系统,因为在HP-UX中,它显示为sed:invalible option--I
,如果sed's/chris\u white/chris\u brown/g'test\u 1
被重定向到一个新文件,只是为了将更改永久性地保存到一个新文件中,就像-i
选项一样,该怎么办?这个问题已经被问了很多次,你必须努力避免回答。这里是一个小样本的重复:,,,等。我很困惑有人对这个问题投了赞成票,因为赞成票表明“这个问题表明了研究的努力;它是有用的和明确的”。