Luc*_*nzo 41 arrays bash shell
我需要在目录中搜索模式,并将包含它的文件的名称保存在数组中.
搜索模式:
grep -HR "pattern" . | cut -d: -f1
Run Code Online (Sandbox Code Playgroud)
这将打印出包含"pattern"的所有文件名.
如果我尝试:
targets=$(grep -HR "pattern" . | cut -d: -f1)
length=${#targets[@]}
for ((i = 0; i != length; i++)); do
echo "target $i: '${targets[i]}'"
done
Run Code Online (Sandbox Code Playgroud)
这只打印一个包含所有filnames字符串的元素.
output: target 0: 'file0 file1 .. fileN'
Run Code Online (Sandbox Code Playgroud)
但是我需要:
output: target 0: 'file0'
output: target 1: 'file1'
.....
output: target N: 'fileN'
Run Code Online (Sandbox Code Playgroud)
如果不对目标执行无聊的拆分操作,我怎样才能实现结果?
anu*_*ava 55
您可以使用:
targets=($(grep -HRl "pattern" .))
Run Code Online (Sandbox Code Playgroud)
注意(...)在BASH中使用数组创建.
您还可以使用输出中的grep -l文件名grep(如我的命令所示).
| 归档时间: |
|
| 查看次数: |
61322 次 |
| 最近记录: |