linux 中实现批量讲指定的行替换为特定的数据
001、 sed 实现
[root@PC1 test4]# ls a.txt coordinate.txt [root@PC1 test4]# cat a.txt ## 测试数据 dd ff sd 1 ss aa ee 2 xx vv zz 3 ss ww rr 4 aa ff jj 5 nn mm kk 6 ss rr uu 7 yy uu ee 8 ww rr 88 9 [root@PC1 test4]# cat coordinate.txt ## 计划替换的内容 3 MMM 5 GGG 8 QQQ [root@PC1 test4]# cp a.txt a.txt.bak ## 将原始文件备份 [root@PC1 test4]# cat coordinate.txt | while read {i,j}; do sed -i "$i s/.*/$j/" a.txt; done ## 利用sed命令替换 [root@PC1 test4]# ls a.txt a.txt.bak coordinate.txt [root@PC1 test4]# cat a.txt ## 替换结果 dd ff sd 1 ss aa ee 2 MMM ss ww rr 4 GGG nn mm kk 6 ss rr uu 7 QQQ ww rr 88 9
002、失败的尝试
[root@PC1 test4]# ls a.txt coordinate.txt [root@PC1 test4]# cat a.txt ## 测试数据 dd ff sd 1 ss aa ee 2 xx vv zz 3 ss ww rr 4 aa ff jj 5 nn mm kk 6 ss rr uu 7 yy uu ee 8 ww rr 88 9 [root@PC1 test4]# cat coordinate.txt ## 计划替换的内容 3 MMM 5 GGG 8 QQQ [root@PC1 test4]# cp a.txt a.txt.bak ## 备份数据 [root@PC1 test4]# cat coordinate.txt | while read {i,j}; do sed -i "$ic $j" a.txt; done ## 利用sed整行替换,报错 sed: -e expression #1, char 2: unknown command: `M' sed: -e expression #1, char 3: extra characters after command sed: -e expression #1, char 3: extra characters after command [root@PC1 test4]# cat a.txt dd ff sd 1 ss aa ee 2 xx vv zz 3 ss ww rr 4 aa ff jj 5 nn mm kk 6 ss rr uu 7 yy uu ee 8 ww rr 88 9
分类:
linux shell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-12-25 利用GEMMA进行GWAS分析
2020-12-25 C语言获取数值的最后几位数