sed 替换特定行

写一个脚本替换文件a.txt第30和33行的width值,从133变为144,怎么写?30:width=13331:heigth=18832:newwidth=133se... 写一个脚本替换文件 a.txt 第30和33行的width值,从133变为144,怎么写?
30: width = 133
31: heigth = 188
32: newwidth = 133

sed -i "30s/133/144" a.txt 这个问题出在哪里?
sed -i "30s/[0-9]+/144" a.txt 这个又有什么问题?
展开
 我来答
hwguan
2013-07-11 · TA获得超过1万个赞
知道大有可为答主
回答量:4405
采纳率:0%
帮助的人:4142万
展开全部
出错在于 s/patstr/repstr/ 必须是三个/标示匹配模式patstr和替换字串repstr
加上末尾/就对了

如果全文 有width的行都是133, 都想替换为144的话,还可以

sed -i "/width/s/[0-9]+/144/" a.txt
/width/ 是锁定带有width字串的行, 再接替换操作
追问
对特定的两行呢? 比如30和33行做替换,怎么表达?
另外,正则表达式描述 三个文件:a.txt a-1.txt a-2.txt,应该如何表达?
追答
特定行直接标示行号
sed -i -e "30/s/pattern/repstr/" -e "33/s/pattern/repstr/"
正则表达式的话 a[-]?[0-9]?.txt 可以达到目的
seesea2517
推荐于2017-11-25 · TA获得超过1480个赞
知道小有建树答主
回答量:512
采纳率:100%
帮助的人:547万
展开全部
sed -i "30s/133/144/" a.txt    
sed -i "30s/[0-9]+/144/" a.txt

s 命令最后要加上一个 /

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式