linux里面的sed命令[root@localhost home]# cat a111222333我想把第二行222替换为两边带有引号的777 即 "777" 我是下面这样写的,但是不行.请问哪里写错了吗?(如果777两边没有引号的话,是这么写.加了引号

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 18:57:41

linux里面的sed命令[root@localhost home]# cat a111222333我想把第二行222替换为两边带有引号的777 即 "777" 我是下面这样写的,但是不行.请问哪里写错了吗?(如果777两边没有引号的话,是这么写.加了引号
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

linux里面的sed命令[root@localhost home]# cat a111222333我想把第二行222替换为两边带有引号的777 即 "777" 我是下面这样写的,但是不行.请问哪里写错了吗?(如果777两边没有引号的话,是这么写.加了引号

a又是变量名又是文件名,很容易搞混啊.建议换个变量名.

sed匹配一行时不一定要使用行号,直接匹配内容也可以.


一句就行:

sed -i '/222/c\"777"' /home/a


 要获取行号,也有简单一点的方法:

sed -n '/222/=' /home/a