【发布时间】:2017-09-17 03:18:35
【问题描述】:
我正在尝试grep 使用数组的所有元素,但由于空格而中断。
下面是我的数组的值:
server:/home/a-hkat # echo "${hitesharray2[@]}"
ida0481.abc.xyz.net:/J 'ida0481.abc.xyz.net [/J]'
server:/home/a-hkat # declare -p hitesharray2
declare -a hitesharray2='([0]="ida0481.abt.xyz.net:/J" [1]="'\''ida0481.abc.xyz.net [/J]'\''")'
以下是错误:
server:/home/a-hkat # omnidb -winfs | grep "${hitesharray2[@]}"
grep: 'ida0481.abc.xyz.net [/J]': No such file or directory
想要的结果应该如下但使用数组:
server:/home/a-hkataria # omnidb -winfs | grep ida0481.abc.xyz.net:/J
ida0481.abc.xyz.net:/J 'ida0481.abc.xyz.net [/J]'
简而言之,我想使用数组或其他替代方法对以下行进行 grep。
server:/home/a-hkat # echo "${hitesharray2[@]}"
amerfs0039.abc.xyz.net:/F 'amerfs0039.abc.xyz.net [/F]'
server:/home/a-hkat # omnidb -winfs | grep amerfs0039.abc.xyz.net:/F
amerfs0039.abc.xyz.net:/F 'amerfs0039.abc.xyz.net [/F]' WinFS
【问题讨论】:
-
您好,我已经更新了问题,还包括了 declare -p 的输出
-
请澄清一下,因为问题在不断变化:您想分别对每个数组值进行 grep 处理吗? (即
array = (aaa bbb)和想要omnidb -winfs | grep aaa和omnidb -winfs | grep bbb)或者你想用所有数组值组合在一起的字符串进行grep? (即omnidb -winfs | grep "aaa bbb")
标签: arrays bash shell grep command-line-arguments