首页 > 解决方案 > 如何使用 bash 从文件名中提取所需的模式?

问题描述

我在excel表中有两列。第一列有单元格的名称,第二列有它的值。

在列中,我有几个具有相同名称的单元格。现在我想要的是基于第 1 列的单元格编号,我想将所有值分组到单个单元格(新列)中。然后找出该组中的唯一编号。

我在一个文件夹中有 n 个文件。我能够列出带有 *.log 扩展名的现有文件。

我的文件名如下:

BV996-1-Positive.log
BV997-1-Positive.log
EV10-1-Negative.log
EV10-1-Positive.log
EV10-2-Negative.log
EV10-2-Positive.log

这是我到目前为止写的:

for file in davinci_final_240/*.log
do
echo "$(basename "$file")"
done

如何从这些文件中排除“-*tive.log”部分。

标签: excelbash

解决方案


要在最后一个破折号后排除所有内容,请使用类似base=${file%-*}

for f in davinci_final_240/*.log
do
  file=${f##*/}
  echo "${file%-*}"
done

推荐阅读