如何调整下面的 bash 脚本以搜索子目录

问题描述

我有一个包含以下结构文件的目录:

$

我正在尝试获取以 .txt 结尾的交易文件中的特定内容,因此我正在尝试使用 bash 脚本来实现此目的。从概念上讲,这是我的思考过程。

A - 列出当前目录中的每个文件夹。在这个例子中,它将是 HomeTransaction1、HomeTransaction2 和 HomeTransaction3

B - 对于 B 中的每个文件夹,列出所有文件夹(日期文件夹)

C - 对于步骤 B 中的每个文件夹,对扩展名为 .txt 的文件运行“grep”

这是我目前想到的:

class viewmodel : ObservableObject {
    @Published var isValid = false
}

struct ContentView : View {
    @Observedobject var viewmodel : viewmodel
    
    var body: some View {
        vstack {
            ChildView(viewmodel: Childviewmodel(isValid: $viewmodel.isValid))
        }
    }
}

class Childviewmodel : ObservableObject {
    var isValid : Binding<Bool>
    
    init(isValid: Binding<Bool>) {
        self.isValid = isValid
    }
    
    func toggle() {
        isValid.wrappedValue.toggle()
    }
}

struct ChildView : View {
    @Observedobject var viewmodel : Childviewmodel
    
    var body: some View {
        vstack {
            Text("Valid: \(viewmodel.isValid.wrappedValue ? "true" : "false")")
            Button(action: {
                viewmodel.toggle()
            }) {
                Text("Toggle")
            }
        }
    }
}

感谢您帮助我完成脚本。谢谢。

解决方法

解决方法其实很简单

find ./HomeTrasaction* -iname "*.txt" -exec grep -i "phrase" {} \;

find ./HomeTrasaction* - 在当前目录中搜索以该短语开头的每个目录。

-iname "*.txt" - 每个以 .txt 结尾的文件

-exec grep -i "短语" {} ; - grep 表示“短语”这个词

如果这还不清楚“man find”:)