大家好,感谢您的时间!
我有一个包含n个文件的目录。我需要在另一个专用目录中将除第一个文件之外的所有文件连接到" group1",然后将除第二个文件以外的所有文件连接到" group2"等
我试过了:
for f in dir/*
do
cat !($f) > otherdir/group$f
done
但似乎猫没有这样做,因为我得到语法错误:(我很乐意翻译我语言中给出的错误)
syntax error near unexpected symbol : (
line : cat !($f) > otherdir/group$f
我还尝试通过先将所有需要的文件复制到某处,连接,然后删除它们来解决。但由于它必须使用大量的多个文件,我更喜欢不必编写无用的文件。
谢谢!
答案 0 :(得分:4)
您需要先设置extglob
:
shopt -s extglob
cd dir
for f in *
do
cat !("$f") > "../otherdir/group$f"
done
extglob
是必需的,因为!($f)
被称为扩展的glob模式,默认情况下未设置。有关man bash
extglob