你好Stackoverflow的家伙......
问题:
ls W
W/W-5974.jpg
W/W-5642.jpg
W/W-5789.jpg
W/W-5199.jpg
W/W-7565.jpg
W/W-2270.jpg
.....
正如你所看到的,文件夹W中有很多文件,所有其他文件夹中都有相同的文件。
我准备了一个命令,将信息放在caffe的文本文件中
find . -name '*.jpg' -exec env f={} bash -c 'echo $f "replaceme" | cut -c 3- ' ';'
这会生成如下列表:
W/W-8872.jpg replaceme
W/W-9262.jpg replaceme
W/W-6049.jpg replaceme
W/W-3995.jpg replaceme
W/W-6476.jpg replaceme
W/W-7633.jpg replaceme
W/W-5974.jpg replaceme
W/W-5642.jpg replaceme
W/W-5789.jpg replaceme
但我想拥有这样的数据:
W/W-8872.jpg W
W/W-9262.jpg W
A/A-6049.jpg A
D/D-3995.jpg D
D/D-6476.jpg D
x/x-7633.jpg x
W/W-5974.jpg W
l/l-5642.jpg l
W/W-5789.jpg W
replaceme应该替换为find输出和剪切的第一个字符....
问题: 我能用这一个衬垫做到这一点吗?如果没有,有人有推荐吗?问题是它需要非常快,因为有800'000个文件:-(很多来自BigData的问候
答案 0 :(得分:1)
您可以使用Substring Expansion获取shell中字符串的一部分。
$ f=foobar
$ echo "${f:0:1}"
f
$ echo "${f:3:2}"
ba