与cut。* .tex文件一起使用时,mkdir会生成错误的目录名称

时间:2016-03-07 22:22:34

标签: linux bash unix latex tex

为具有特定扩展名的每个文件创建目录时:

    $ ls
    a.ttt  b.ttt  c.ttt  d.ttt  e.ttt
    $ mkdir $(ls *.ttt | cut -f 1 -d ".")
    $ ls
    a  a.ttt  b  b.ttt  c  c.ttt  d  d.ttt  e  e.ttt

......一切正常。但是,如果我为.tex文件执行此操作,我会得到以下结果:

    $ ls
    a.tex  b.tex  c.tex  d.tex  e.tex
    $ mkdir $(ls *.tex | cut -f 1 -d ".")
    $ ls
    ?[00;32mb  ?[00;32mc  ?[00;32md  ?[00;32me  ?[0m?[00;32ma  a.tex  b.tex  c.tex  d.tex  e.tex

我只想清理我的latex目录,并得到奇怪的目录名称。为什么这样以及如何使其发挥作用?

1 个答案:

答案 0 :(得分:2)

像这样使用ls的输出很容易出错。

您可以使用:

# grab all *.tex files in an array
arr=(*.tex)

# replace part after DOT and create directories
mkdir -p "${arr[@]//.*}"