【问题标题】:Process all files with a given ending in a directory [duplicate]处理目录中具有给定结尾的所有文件[重复]
【发布时间】:2016-10-07 11:02:56
【问题描述】:

我正在尝试在一个目录中查找并处理所有具有给定结尾的文件(下例中的.txt)。我当前的示例在文件名中的任意位置查找包含 .txt 的所有文件(例如,还有以 .txt* 结尾的文件,例如 .txt.xls)。

DATADIR=$1

for DATA in `ls $DATADIR`; do
  DATABASENAME=$(basename $DATA)
  echo "Basename of file $DATABASENAME"

  if [[ ${DATABASENAME} =~ .*txt ]];
  then
    DATAPATH="$DATADIR$DATABASENAME"

    echo "File path $DATAPATH"
  fi 
done 

【问题讨论】:

    标签: bash shell


    【解决方案1】:

    如果我理解正确,那就是你想要的 for 循环:

    for file in *.txt ; do
    

    【讨论】:

    • 要将@Hans 的想法添加到示例中,请将 if 替换为 if [[ ${DATABASENAME} == *.txt ]]。 ${DATABASENAME} =~ .*\.txt$ 也是正确的($ 指定单词的结尾)。
    猜你喜欢
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 2011-07-05
    • 2021-09-27
    相关资源
    最近更新 更多