提问人:DDisciple 提问时间:4/16/2019 最后编辑:TanktalusDDisciple 更新时间:4/16/2019 访问量:52
从 txt 文件中删除确切的名称
Remove exact name from txt file
问:
我有以下代码,可以从文件中删除某些行
ret=$(grep -m2 "$var" log.txt | tail -n1 )
mv $var $ret
grep -F -v $var log.txt > log.txt.tmp
mv log.txt.tmp log.txt
我的日志文件如下所示
2.txt
/home/etc/2.txt
基本上是文件名及其原始位置
我想恢复文件,我的程序确实这样做了,但我也想要 从 log.txt 文件中删除文件的名称及其位置
现在上面的代码可以工作了,但它删除了所有实例,例如
它将删除 2.txt 和路径,这很好,但是如果我有一个名为 22.txt 的文件,它也会删除它。我需要它来删除 2.txt,但似乎正在删除其中带有“2.txt”的行。
是否可以只删除 2.txt,并且由于目录中有 /2.txt,因此也可以删除整行?
答:
0赞
Mathieu
4/16/2019
#1
因此,在您的文件中,您需要:log.txt
- 在单行上匹配
2.txt
- match 前面有某个路径。
2.txt
您可以在 grep 中执行此操作:
# match all but lines beginning with $var, so 2.txt
grep -F -v "^$var" log.txt > log.txt.tmp
# match all but lines containing "/$var", so "/2.txt"
grep -F -v "/$var" log.txt.tmp > log.txt
评论