项目地址: 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命令,将第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
原文:https://www.cnblogs.com/goto2091/p/13715100.html