首页 > 其他 > 详细

学习助手开发4——实现完成事项的功能

时间:2020-09-22 22:56:04      阅读:78      评论:0      收藏:0      [点我收藏+]

项目地址: https://github.com/Zeraka/mytodolisthelper

todolist里的计划完成,需要将notdone,替换为done
初步思路是设计一个脚本,该脚本将具体某一行的notdone字符串替换为done字符串。

首先是要知道每行事务的行数。指令使用 grep -n即可。可得到如下消息

12:类继承       2020-09-22 12:07:22     notdone
13:类继承       2020-09-22 18:07:22     notdone
14:16进制转换10进制和字符串相乘 2020-09-22 18:37:17     notdone

现在需要将第12行中的notdone修改为done,请问怎么办?

sed实现将某行文字替换

使用sed命令,将第12行的notdone替换为done。
参考该文档的指令。https://www.cnblogs.com/YLuluuu/p/9258782.html
直接在命令行终端为:

sed -i ‘12 s/notdone/done/‘ todolist.txt

i是表示就地修改文件。 12表示修改12行, 后面的指令是将notdone字符串替换为done字符串。
这里有一个引号的问题. 报错sed: -e expression #1,
最后这样解决——直接使用双引号,以及在原先的s/notdone/$2后加上/g.主要是加上了/g解决了问题。

#!/bin/sh
filename=‘todolist.txt‘
sed -i "$1 s/notdone/$2/g" $filename

单引号就是所见即所得,双引号就是会输出所有的内容,如果里面有变量,会展现变量。
参考该连接 https://blog.csdn.net/qq_25035099/article/details/79642261

其他的问题

sed还有哪些参数?
如果用python实现,该如何实现?
https://www.cnblogs.com/lonecloud/p/9066199.html

学习助手开发4——实现完成事项的功能

原文:https://www.cnblogs.com/goto2091/p/13715100.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!