怎么sed命令实现从行末sed 删除匹配字符第二个字符并替换成另一个字符

linux sed awk命令结合匹配符 根据第二行内容,替换第一行内容 可以写成shell脚本
[问题点数:50分]
本版专家分:0
结帖率 50%
CSDN今日推荐
匿名用户不能发表回复!|
CSDN今日推荐如何使用Linux sed命令进行字符串替换_百度知道
如何使用Linux sed命令进行字符串替换
我有更好的答案
sed -i 's/ori/replace/' 文件名-i 原文件内容替换;ori为要替换的字符串replace为要替换成的字符串
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Linux中使用sed命令替换字符串小结 - IT浪 - 博客园
sed替换的基本语法为:
sed 's/原字符串/替换字符串/'
单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线&\&进行转义,但是单引号&&&是没有办法用反斜线&\&转义的,这时候只要把命令中的单引号改为双引号就行了,例如:
sed "s/原字符串包含'/替换字符串包含'/" //要处理的字符包含单引号
命令中的三根斜线分隔符可以换成别的符号,这在要替换的内容有较多斜线是较为方便,只需要紧跟s定义即可,例如换成问号&?&:
sed 's?原字符串?替换字符串?' //自定义分隔符为问号
可以在末尾加g替换每一个匹配的关键字,否则只替换每行的第一个,例如:
sed 's/原字符串/替换字符串/' //替换所有匹配关键字
上箭头&^&表示行首,美元&$&符号如果在引号中表示行尾,但是在引号外却表示末行(最后一行),这里犯二了,搜了半天哪个符号表示首行,半天才想起来,首行就是数字&1&P啊.那么在行首和行尾添加字符串就是把行尾和行首替换,例如:
sed 's/^/添加的头部&/g' //在所有行首添加sed 's/$/&添加的尾部/g' //在所有行末添加sed '2s/原字符串/替换字符串/g' //替换第2行sed '$s/原字符串/替换字符串/g' //替换最后一行sed '2,5s/原字符串/替换字符串/g' //替换2到5行sed '2,$s/原字符串/替换字符串/g' //替换2到最后一行
替换样式可以多个在同一条命令中执行,用分号&;&分隔,例如:
sed 's/^/添加的头部&/g;s/$/&添加的尾部/g' //同时执行两个替换规则
sed处理过的输出是直接输出到屏幕上的,要保存可以将输出重定向,或者使用参数&i&直接在文件中替换:
sed -i 's/原字符串/替换字符串/g' filename //替换文件中的所有匹配项
阅读(...) 评论()
Powered By:在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
原因是我看到这行命令
sed 's/.*$//g'
只会留下空白行而不能把行删除.
这可能说明:
命令中的$仅仅代表行尾,而并不指行尾隐藏的'$'字符
这行命令不管替换内容是什么,必须保证一行文本最后有个隐藏的'$'字符
单纯论以上两点,我这么想有错吗?
以上两点哪一点是本题的答案?或者说有第3点?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
呃,'$'并不真的存在在行尾,它只是一个元字符,用来表示一行的结尾。它没有隐藏起来,因为它只是概念上的产物。sed之所以不能把行删除,是因为sed是逐行读取的,一般情况下,它也是逐行处理的。
如果想用sed处理换行符,可以参考这个答案:
如果想删除特定行,可以用sed 'n, md' file来删除。比如sed '1, $d' file能够删除从第一行到最后一行的内容。
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。如何用sed命令替换一行中的某个字符串_百度知道
如何用sed命令替换一行中的某个字符串
如何替换特定行的某个字符串 如:
node = aa如何将File = aa中的aa ,换成bb,但是不换node = aa这一行中的aa。
我有更好的答案
  sed替换的基本语法为:  sed 's/原字符串/替换字符串/'  实际使用参考代码如下:  在有aaa的行中,将 111 替换为 AAA,将 222 替换为 BBB即,  sed '/aaa/  {  s/111/AAA/g;  s/222/BBB/g;  }  ' urfile
user@minix-nb:~$ echo 'File = aa' | sed 's/\&File\&/node/'node = aauser@minix-nb:~$ echo 'File = aa' | sed 's/\&aa\&/bb/'File = bbuser@minix-nb:~$
本回答被网友采纳
为您推荐:
其他类似问题
您可能关注的内容
sed的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 sed 删除匹配字符串 的文章

 

随机推荐