Questions tagged «wildcards»

通配符表示通过包含通配符的名称模式匹配文件。

6
如何从通配符扩展中获得第一场比赛?
诸如Bash和Zsh之类的Shell会将通配符扩展为参数,与模式匹配的参数一样多: $ echo *.txt 1.txt 2.txt 3.txt 但是,如果我只希望返回第一个比赛而不是所有比赛,该怎么办? $ echo *.txt 1.txt 我不介意特定于shell的解决方案,但是我想要一个可以在文件名中使用空格的解决方案。
38 shell  wildcards 



10
如何在所有子目录中创建目录?
假设我有一个像这样的目录结构: $ [〜/ practice] ls A B C D/ 现在,我想tmp1在的所有子目录中创建一个目录,practice并执行以下操作: $ [〜/ practice] mkdir * / tmp1 mkdir:无法创建目录“ * / tmp1”:没有此类文件或目录 然后我尝试进行-p切换,最后得到一个以子目录命名*的目录tmp1 $ [〜/ practice] mkdir -p * / tmp1 $ [〜/ practice] ls */ A B C D/ 我知道-pswitch 的用途是创建多个不存在的目录。我只是认为这可能会有所帮助。 如何tmp1一次在所有子目录中创建? 如果可以做到这一点,我如何延长它来创建\tmp1,\tmp2,\tmp3中\a,\b并\c在一次? 编辑:我错过提的是,目录不必是简单而有序,像a,b,c等等,并且要创建的目录不一定喜欢tmp1,tmp2。 $ [〜/ practice] ls 狗/猫/老鼠/ 我想在他们身上有一些 …


1
引号内的通配符
这将是一个简单的过程,但是在我的记忆中,当执行Shell脚本时,使用双引号将允许扩展globlob和变量。 但是在下面的代码中: #!/bin/sh echo *.sh echo "*.sh" echo '*.sh' echo $LANG echo "$LANG" echo '$LANG' 我得到这个结果: bob.sh redeployJboss.sh *.sh *.sh en_US.utf8 en_US.utf8 $LANG 因此,单引号可防止glob和变量扩展,而双引号仅允许变量扩展而没有glob? 我可以使用任何报价模式吗?

2
删除文件匹配模式
我需要递归删除所有子目录中的所有文件,其中文件名包含一个数字,后跟一个“ x”,然后一个数字,至少两次。 例: 我想删除这些文件: 'aaa-12x123-123x12.jpg' 'aaa-12x12-123x12-12x123.jpg' 但我不想删除这些文件: 'aaa.jpg' 'aaa-12x12.jpg' 'aaaxaaa-123x123.jpg' 'aaaxaaa-aaaxaaa.jpg' 我该怎么做(从bash shell)
32 bash  files  find  wildcards 

2
find(1):如何实现星号通配符以使其在某些文件名上失败?
在文件名使用UTF-8的文件系统中,我的文件名称错误;它显示为:D�sinstaller,根据zsh:的实际名称 D$'\351'sinstaller,Latin1表示Désinstaller,本身是法式野蛮的“卸载”。Zsh不会将其与之匹配,[[ $file =~ '^.*$' ]]但会与之匹配(*这是我期望的行为)。 现在,我仍然希望在运行时能够找到它find . -name '*'-事实上,我绝不会期望文件名能够通过该测试。然而,随着LANG=en_US.utf8,该文件确实不露面,我必须集LANG=C(或en_US,或'')为它工作。 问题: 背后的实现是什么,我如何预测结果? 信息:Arch Linux 3.14.37-1-lts,查找(GNU findutils)4.4.2

10
处理带有特殊首字符的文件名(例如♫)
我最近遇到了一个名称以字符“ the”开头的文件。我想复制此文件,将其输入ffmpeg,并在终端中以其他各种方式引用它。我通常会自动完成怪异的文件名,但这会失败,因为我什至无法输入第一个字母。 我不想切换到鼠标来执行复制粘贴操作。我不想为可能的情况记住一堆代码。我的临时解决方案是切换到vim,粘贴!ls并复制有问题的字符,然后退出并将其粘贴到终端中。这行得通,但是非常可怕。 有没有更简单的方法来处理这种情况? 注意:如果使用鱼壳,它会改变一切。




5
具有数字顺序的球
我在目录中有以下pdf文件列表: c0.pdf c12.pdf c15.pdf c18.pdf c20.pdf c4.pdf c7.pdf c10.pdf c13.pdf c16.pdf c19.pdf c2.pdf c5.pdf c8.pdf c11.pdf c14.pdf c17.pdf c1.pdf c3.pdf c6.pdf c9.pdf 我想使用ghostscript以数字顺序将它们连接起来(类似于此): gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf *.pdf 但是,shell扩展顺序不重现数字的自然顺序,而是按字母顺序: $ for f in *.pdf; do echo $f; done c0.pdf c10.pdf c11.pdf c12.pdf c13.pdf c14.pdf c15.pdf c16.pdf c17.pdf …



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.