我必须连接一组文件。目录结构是这样的:
root/features/xxx/multiple_files... -> root/xxx/single_file
我写的(而且效果很好):
for dirname in $(ls -d root/features/*|awk -F/ '{print $NF}');do;mkdir root/${dirname};cat root/features/${dirname}/* > root/${dirname}/final.txt;done
但是当我通过 sh shell 运行相同的东西时
/bin/sh -c "for dirname in $(ls -d root/features/*|awk -F/ '{print $NF}');do;mkdir root/${dirname};cat root/features/${dirname}/* > root/${dirname}/final.txt;done"
它给了我错误:
/bin/sh: -c: line 1: syntax error near unexpected token `201201000'
/bin/sh: -c: line 1: `201201000'
我的进程总是在运行任何命令之前附加 /bin/sh -c 。任何建议这里可能出了什么问题?有什么替代方法吗?我在这方面花了很长时间,但没有取得太大进展!
编辑:
`ls -d root/features/*|awk -F/ '{print $NF}'
返回
201201
201201000
201201001
201201002
201201003
201201004
201201005
201201006
201201007
201202000
201205000
201206000
201207000
201207001
201207002