从bash中文件夹内容的子集中获取最新文件

湿的

我有一个包含此类内容的文件夹

nass@starmaze:~/audio_setup/scripts$ ls -l ../jmess/
total 32
-rw-rw-r-- 1 nass users 1573 Νοέ  16  2014 jmess_fxio56-78feedsHDA-play12.jmess
-rw-rw-r-- 1 nass nass  1573 Δεκ  13  2014 jmess_pb-2.jmess
-rw-rw-r-- 1 nass nass  1573 Δεκ  20  2014 jmess_pb-3.jmess
-rw-rw-r-- 1 nass nass  1939 Ιούν 12 13:05 jmess_starmazeOnMaster.jmess
-rw-rw-r-- 1 nass nass  2163 Δεκ  15  2014 jmess_starmazeOnMaster.jmess.bak1-art
-rw-rw-r-- 1 nass nass  2161 Δεκ  15  2014 jmess_starmazeOnMaster.jmess.bak2-bcr
-rw-rw-r-- 1 nass nass  2389 Δεκ  22  2014 jmess_starmazeOnMaster.jmess.bak3-hoo
-rw-rw-r-- 1 nass nass  2163 Δεκ  15  2014 jmess_starmazeOnMaster.jmess.bak4-dsp

我希望能够选取最新的文件,但只能从其中不包含单词“ Master”的文件子集中。我想将其放入bash脚本中。

所以这

ls -t1 "${JCMESS_FOLDER}" | head -n1

提供资料夹中的最新档案,而这

ls -t1 "${JCMESS_FOLDER}"/!(*Master*) | head -n1

提供我感兴趣的子集中的最新文件。

但是,当我将后者放在bash脚本中时,

$NEWEST_JCMESS_FILE=$( ls -t1 "${JCMESS_FOLDER}"/!(*Master*) | head -n1 )

这是行不通的:

./06.load_jcmess: command substitution: line 8: syntax error near unexpected token `('
./06.load_jcmess: command substitution: line 8: ` ls -t1 "${JCMESS_FOLDER}"/!(*Master*) | head -n1 )'

我不确定在这种情况下有什么问题,并且我无法成功找到答案。

预先感谢您的帮助

查尔斯·达菲

这是BashFAQ#3

newest() {
  local candidate result=$1; shift    # start with first argument as candidate
  [[ -e $result ]] || return          # handle case where nothing matched

  for candidate; do                   # for loop default behavior is to loop over "$@"
    [[ $candidate -nt $result ]] && result=$candidate
  done
  printf '%s\n' "$result"
}

shopt -s extglob # enable extglobs, ie. !(...)
newest_file=$(newest "$JCMESS_FOLDER"/!(*Master*))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

添加新文件夹

如何使用python获取文件夹中的最新文件

如何在Linux中的文件夹中获取第二个最新文件

文件夹中的最新文件

删除Python中除最新文件夹以外的所有文件夹

获取文件夹中的第二最新文件

在Python中从FTP文件夹获取最新文件(文件名带有空格)

批处理脚本以获取最新文件夹

Applescript查找最新文件夹

获取文件夹中的最新文件并上传到s3?

在Power BI文件夹源中获取最新的更新文件

打开Linux文件夹中的最新文件

别名将转到文件夹中的最新文件夹

Windows批处理文件可将最新文件复制到新文件夹

如何在包含相同ID的文件集中获取最新文件的路径?

如何选择最新文件以批处理文件存储在文件夹中

Android新文件夹问题

从FTP文件夹获取最新的更新文件

在Google云端硬盘文件夹中获取最新文件

列出每个子文件夹的最新文件

在文件夹中打开最新文件(jpg)

ubuntu脚本仅保留每个文件夹的最新文件并删除其他所有内容

在目录中搜索最新文件夹将显示“。”。和“ ..”而不是最新的文件夹

如何获取文件夹中的最新文件?

新文件夹的默认权限

Powershell-重命名文件夹中的特定文件-根据之前的最新文件

如何在远程文件夹 PHP 中获取最新文件?

查找包含特定文件的最新文件夹

bash shell 脚本:将文件夹内文件夹的特定内容从每个文件夹复制到桌面上的新文件夹