我想在shell中将一个文件中的字符串替换为另一个字符串,现在使用sed全局替换,但是速度特别慢,后来发现全文没有换行符,大概10m的文件就一行,sed处理字符串都是以行为单位读到内存,在内容少的时候处理还挺快,多了就慢的不行,请问有什么方法可以解决这个问题?
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
首页/
已采纳
shell 大文件字符串替换
收起
- 写回答
- 好问题 0 提建议
- 关注问题
- 微信扫一扫点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
5条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
开水 2015-04-15 22:38关注我去,别这么用啊,你这用法是让
shell
去从aaa
文件读取,然后通过管道输入到sed
的stdin
,然后再重定向sed
的输出到bbb
:这显然有更高效的办法:
sed -s "/s/stra/strb/g" aaa > bbb
如果你是想直接把aaa这个文件改掉,那更简单:
sed -i "/s/stra/strb/g" aaa
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫点击复制链接分享编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览
轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2017-07-21 07:19回答 3 已采纳 用awk替换,假设你的文本是存在test.txt,用-v传入一个变量seq,然后匹配关键字,匹配到后seq+1,最后把输出重定向到文件就可以了 ``` ~$ awk -v seq=1 '
- 2016-01-26 19:42回答 1 已采纳 http://www.codelast.com/?tag=%E5%88%A4%E6%96%AD%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%98%AF%E5%90%A6%E5%9C%A
- 2018-01-05 05:24回答 6 已采纳 这是我的笔记,请给分: ![图片说明](https://img-ask.csdn.net/upload/201801/06/1515184618_794051.png) ![图片说明](https
- 2021-01-08 21:49当我们需要过滤文件中的内容,例如根据字符串长度进行筛选时,这三者都能发挥重要作用。下面我们将详细介绍如何使用awk、grep和sed来过滤文件内字符串长度并输出。 **awk** 是一个功能强大的文本分析工具,它能够...
- 2021-07-13 07:12回答 3 已采纳 参考一下:https://blog.csdn.net/zxc024000/article/details/102914691 如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
- 2014-12-29 00:19回答 5 已采纳 替换a.txt中的 ``` sed -i "s@//#define LOG 0@#define LOG 0@" a.txt ```
- 2018-12-18 02:57回答 2 已采纳 if 里面,=号两边要有空格。在shell中,=号两边没有空格是表示赋值,有空格表示比较。而且中括号也要有空格。if [ ${answer} = "yes" ],写成这样。
- 2019-02-11 05:51将需要替换的文件放到脚本同级目录,直接执行脚本即可。 根据脚本提示输入 替换前和替换后的字符串
- 2018-10-10 09:22回答 1 已采纳 Tip: You can turn on force https but that would only work for your server and not for any external
- 2023-03-01 01:10回答 2 已采纳 会从AGC删一直停不下来直到末尾?你实测过会这样吗?
- 2021-11-17 06:30回答 3 已采纳 每次输出*之后输出一个空格 n=int(input()) for i in range(n): for k in range(n - i): print('*',end = '
- 2023-09-06 17:05Doraman.Liu的博客 1、将当前目录下包含jack串的文件中,jack字符串替换为tom。2、将某个文件中的jack字符串替换为tom。shell 脚本替换文件中某个字符串。
- 2022-10-13 11:03漁陽的博客 shell处理字符串截取、替换的demo
- 2020-03-07 04:25该脚本可以批量替换字符串,将需要替换的文件放到脚本同级目录,直接执行脚本即可。 根据脚本提示输入 替换前和替换后的字符串
- 2020-07-26 07:40DYY^O^的博客 字符串的替换: 1)只替换第1个子串 格式:${变量名/old/new} 还以前面的phone变量为例,确认原始值: 1. [root@dyy ~]# echo $phone 2. 13788768897 将字符串中的第1个8替换为X: 1. [root@dyy ~]# echo ${phone/8/X...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
- 公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司