我停止了解决问题的流程。现在,我想在CentOS 6.4中启动它停止的过程。
我停止的这个脚本在一个循环中运行一个perl脚本来处理/ dev / shm / split /中的所有文件。这些文件从较大的文件拆分为许多部分。它们如何命名的一个例子如下:
file.txt.aa
file.txt.ab
file.txt.ac
......等等。
我已经确定脚本在file.txt.fy处停止了。所以,我想删除/ dev / shm / split /中的所有文件,这些文件来自file.txt.aa到file.txt.fy.
我尝试通过执行以下操作为rm命令创建白名单:
ls /dev/shm/split/ > whitelist
cat whitelist | egrep -v 'file.txt.[aa-fz]' | tee whitelist.tmp
这不符合我的意图。
请帮帮我!谢谢!
答案 0 :(得分:1)
您的命令的问题是您无法在bash中使用方括号模式匹配两个字符。你应该使用类似的东西:
ls file.txt.[a-e]? file.txt.f[a-y]
基本上将您的范围分解为两个范围,第一个将.aa
与.ez
匹配,第二个.fa
与.fy
(包括)匹配。
请注意,我在此处使用了ls
命令。我总是发现,当您执行的操作具有潜在的破坏性时,首先回显或命令您将要运行的命令/文件是个好主意。如果您确定它会产生正确的输出,请继续使用rm
代替ls
。