我有多个同名的文件。名称的差异只是一个递增的数字。例如linux内核:
rc linux-image-3.2.0-29-generic 3.2.0-29.46 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rc linux-image-3.2.0-31-generic 3.2.0-31.50 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rc linux-image-3.2.0-32-generic 3.2.0-32.51 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rc linux-image-3.2.0-33-generic 3.2.0-33.52 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rc linux-image-3.2.0-34-generic 3.2.0-34.53 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rc linux-image-3.2.0-35-generic 3.2.0-35.55 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
.... and more of them
我想删除大部分内容。比方说,从29到35.使用sudo apt-get purge linux-image-x.x.x.x-generic
手动删除太多了。我应该写什么脚本?
答案 0 :(得分:1)
您可以根据名称模式删除文件。例如,执行:
rm linux-image-3.2.0-{29..35}-generic
之前,为确保删除正确的内容,请执行ls
命令以查看哪些文件会受到影响。
答案 1 :(得分:0)
如果这是你的第一行:
rc linux-image-3.2.0-01-generic 3.2.0-29.46
这是你的第40行:(例如)
rc linux-image-3.2.0-40-generic 3.2.0-29.46
因此,您可以使用awk
删除特定行:
awk -v m=29 -v n=35 'm <= NR && NR <= n {next} {print}' test.txt