数组 – 在阵列bash中存储grep输出

前端之家收集整理的这篇文章主要介绍了数组 – 在阵列bash中存储grep输出前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在目录中搜索一个模式,并将包含它的文件名称保存在数组中.

搜索模式:

@H_301_3@grep -HR "pattern" . | cut -d: -f1

这将打印包含“模式”的所有文件名.

如果我尝试:

@H_301_3@targets=$(grep -HR "pattern" . | cut -d: -f1) length=${#targets[@]} for ((i = 0; i != length; i++)); do echo "target $i: '${targets[i]}'" done

这只打印一个包含所有文件名的字符串的元素.

@H_301_3@output: target 0: 'file0 file1 .. fileN'

但是我需要:

@H_301_3@output: target 0: 'file0' output: target 1: 'file1' ..... output: target N: 'fileN'

如何在没有对目标进行无聊拆分操作的情况下实现结果?

您可以使用: @H_301_3@targets=($(grep -HRl "pattern" .))

注意使用(…)在BASH中创建数组.

另外,您可以使用grep -l来获取grep输出中的文件名(如我的命令所示).

猜你在找的Bash相关文章