数组 – 在阵列bash中存储grep输出
发布时间:2020-12-15 18:53:12 所属栏目:安全 来源:网络整理
导读:我需要在目录中搜索一个模式,并将包含它的文件的名称保存在数组中. 搜索模式: grep -HR "pattern" . | cut -d: -f1 这将打印包含“模式”的所有文件名. 如果我尝试: targets=$(grep -HR "pattern" . | cut -d: -f1)length=${#targets[@]}for ((i = 0; i !=
我需要在目录中搜索一个模式,并将包含它的文件的名称保存在数组中.
搜索模式: grep -HR "pattern" . | cut -d: -f1 这将打印包含“模式”的所有文件名. 如果我尝试: targets=$(grep -HR "pattern" . | cut -d: -f1) length=${#targets[@]} for ((i = 0; i != length; i++)); do echo "target $i: '${targets[i]}'" done 这只打印一个包含所有文件名的字符串的元素. output: target 0: 'file0 file1 .. fileN' 但是我需要: output: target 0: 'file0' output: target 1: 'file1' ..... output: target N: 'fileN' 如何在没有对目标进行无聊拆分操作的情况下实现结果?
您可以使用:
targets=($(grep -HRl "pattern" .)) 注意使用(…)在BASH中创建数组. 另外,您可以使用grep -l来获取grep输出中的文件名(如我的命令所示). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |