linux里面的sed命令[root@localhost home]# cat a111222333我想把第二行222替

linux里面的sed命令
[root@localhost home]# cat a
111
222
333
我想把第二行222替换为两边带有引号的777 即 "777" 我是下面这样写的,但是不行.请问哪里写错了吗?(如果777两边没有引号的话,是这么写.加了引号,
a=`cat -n /home/a|grep 222|awk '{print $1}'`
sed -i " $a c 777 " /home/a
ntxhj1109 1年前 已收到1个回答 举报

狮子的勇气 幼苗

共回答了20个问题采纳率:100% 举报

a又是变量名又是文件名,很容易搞混啊.建议换个变量名.sed匹配一行时不一定要使用行号,直接匹配内容也可以.

一句就行:sed -i '/222/c"777"' /home/a
要获取行号,也有简单一点的方法:sed -n '/222/=' /home/a

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 2.312 s. - webmaster@yulucn.com