【问题标题】:Linux bash: find folders containing specific textLinux bash:查找包含特定文本的文件夹
【发布时间】:2017-07-03 07:50:58
【问题描述】:

我昨天学会了如何使用一个脚本来显示所有包含输入文本的文件。

echo "enter serial number"
read number

matchfiles=(`find /home/data_files -maxdepth 1 -name "*$number*" -type f -exec basename {} \;`)

COUNTER=${#matchfiles[@]}

echo serial number data folder found:
until [  $COUNTER -lt 0 ]; do
echo ${matchfiles[$COUNTER]}
let COUNTER-=1
done

如果输入数字 12,它将输出文件名中包含数字 12 的所有文件'

例如:

enter serial number
12
file12.fee
12file.foo
file.12

我正在寻找一种方法来做完全相同的事情,但使用目录

所以输出是

enter serial number
12
folder12
12folder

我需要包含在数组中的文件夹名称,以便以后可以使用它们来处理其中的数据。

【问题讨论】:

  • -type d 将搜索限制为目录名称。
  • @karakfa 当然......哈哈。谢谢!

标签: arrays linux bash text directory


【解决方案1】:
find {path} -name "*$number*" -type d -exec readlink -f {} \;

如果您的可选 {path} 是相对的,您希望 readlink -f 将相对路径转换为绝对路径。如果您想限制 dir 路径中的递归搜索,您可能需要添加回 -maxdepth

【讨论】:

    猜你喜欢
    • 2018-04-21
    • 2012-05-22
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多