求一个shell脚本:实现判断一个文件是否包含某内容,如果包含,刚删除所在的行(或替换该行);如果
求一个shell脚本:实现判断一个文件是否包含某内容,如果包含,刚删除所在的行(或替换该行);如果不包含该内容,则添加。新手求详细注释,谢谢大神了!...
求一个shell脚本:实现判断一个文件是否包含某内容,如果包含,刚删除所在的行(或替换该行);如果不包含该内容,则添加。新手求详细注释,谢谢大神了!
展开
1个回答
展开全部
#!/bin/bash
read -p "请输入目的内容:" varchar
grep "$varchar" filename && sed -i "/$varchar/d" filename || echo $varchar >>filename
exit
详细解释:
第1行:申明/解释脚本用的是bash
第2行:用read读取你输入的内容,然后复制给varchar
第3行:在文件filename中查找刚刚你输入的内容,&&表示如果找到了内容就执行后面的命令,||表示如果没找到则执行后面的内容;那么完整解释就是,当前面查找到你输入的内容时,则执行sed -i "***/d" 删除命令,而没有查找到则执行||后面的追加内容命令。
第4行:退出脚本
Ps:filename需要改成你说的那个文件的名字及路径。
更多追问追答
追问
能给注释下么?谢谢了
#!/bin/bash
read -p "请输入目的内容:" varchar (这里是在赋值变量吗?)
grep "$varchar" filename (搜索文本)&& (&什么作用?跟前面有关联没有?)sed -i "/$varchar/d" filename(看不懂。。) ||(俩竖线什么意思?) echo $varchar >> filename
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询