我停止了一个进程来排除一些问题。现在,我想从CentOS 6.4中停止的过程开始。
我停止的这个脚本在一个循环中运行一个perl脚本来处理/dev/shm/split/中的所有文件。这些文件被从更大的文件中分割成许多部分。如何命名它们的一个示例如下:
file.txt.aa
file.txt.ab
file.txt.ac...and等。
我已经确定脚本在file.txt.fy上停止了。因此,我想从file.txt.aa通过file.txt.fy删除/dev/shm/split/中的所有文件。
我试图为rm命令创建一个白名单,方法是:
ls /dev/shm/split/ > whitelist
cat whitelist | egrep -v 'file.txt.[aa-fz]' | tee whitelist.tmp这不是我想做的。
请帮帮我!谢谢!
发布于 2015-10-21 14:33:01
命令的问题是,在bash中,不能将两个字符与方括号模式匹配。你应该用类似的东西来代替:
ls file.txt.[a-e]? file.txt.f[a-y]基本上,将您的范围分解为两个范围,第一个范围将匹配.aa与.ez,第二个.fa将匹配到.fy (包括)。
注意,我在这里使用了ls命令。我始终认为,当您所执行的操作具有潜在的破坏性时,首先回显或删除要运行的命令/文件是个好主意。当您确信它产生正确的输出时,继续使用rm而不是ls。
https://stackoverflow.com/questions/33261937
复制相似问题