【发布时间】:2018-02-01 03:25:22
【问题描述】:
我有一个远程目录,除了读取文件之外我没有任何权限。
通常我会运行自定义的服务器范围脚本 dostuff,例如:
dostuff /path/to/images/*img
但是,这个目录意外地有两组不同的文件(每组文件数量相同),名称非常相似:
13-08_1_0XXX.img
13-08_1_0XXX_16YYYY.img
其中 Xs 从 1 到 900 递增,而 Ys 有一些任意数字。
例如,我可以使用正则表达式为第一组选择文件名:
find . | grep -E -w -o ".{12}.img"
所以我尝试了
find /path/to/images/ | grep -E -w -o ".{12}.img" | dostuff
但这不起作用。由于我无法移动文件或将它们复制到其他地方,我认为唯一的解决方案是弄清楚如何将它们作为两组单独的图像通过管道传输到脚本中。任何建议将不胜感激!
【问题讨论】:
-
您的问题与移动文件或仅具有读取权限的目录有什么关系?您的正则表达式
".{12}.img"将匹配两组文件顺便说一句 - 您必须将其锚定'^.{12}\.img$'以获得不同的结果。 -
嗨@EdMorton。我试图暗示这样一个事实,即如果我有文件权限,这将是微不足道的,试图阻止人们说“只是将这个正则表达式导入 mv”之类的事情。另外,你说得对,它同时匹配,但我使用了 -w 标志,试图只保留那些匹配整个“单词”的标志。
标签: linux shell grep find pipe