相关疑难解决方法(0)

Bash中两个列表的交集

我正在尝试编写一个简单的脚本,列出两个列表中的内容.为简化起见,我们以ls为例.想象一下"一个"和"两个"是目录.

one=`ls one`
two=`ls two`
intersection $one $two

我在bash中仍然很绿,所以请随时纠正我这样做的方式.我只需要一些命令,打印出"one"和"two"中的所有文件.它们必须存在于两者中.你可以把它称为"一"和"两"之间的"交集".

bash

153
推荐指数
3
解决办法
6万
查看次数

bash中两个数组的比较/差异

是否有可能在bash中取两个数组的差异.
如果你可以建议我这样做的话会非常棒.

代码:

Array1=( "key1" "key2" "key3" "key4" "key5" "key6" "key7" "key8" "key9" "key10" )
Array2=( "key1" "key2" "key3" "key4" "key5" "key6" ) 

Array3 =diff(Array1, Array2)

Array3 ideally should be :
Array3=( "key7" "key8" "key9" "key10" )
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助.

arrays bash diff compare

46
推荐指数
6
解决办法
7万
查看次数

在 shell 脚本中获取 2 个数组中的公共值

我有一个

array1 = (20,30,40,50)
array2 = (10,20,30,80,100,110,40)
Run Code Online (Sandbox Code Playgroud)

我必须从数组 3 中的这 2 个数组中获取公共值,例如:

array3 = (20,30,40) 
Run Code Online (Sandbox Code Playgroud)

按升序排列。

unix sorting bash shell awk

5
推荐指数
1
解决办法
4427
查看次数

数组中的Bash检查元素用于另一个数组中的元素

我找到了这个很酷的Bash函数,用于检查数组是否包含一个元素:

CONTAINS_ELEMENT(){
  local e
  for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
  return 1
}
Run Code Online (Sandbox Code Playgroud)

以下是它的用法示例:

if CONTAINS_ELEMENT $element "${array[@]}"; then
... 
fi
Run Code Online (Sandbox Code Playgroud)

我的问题是:有没有办法重写这个函数,以便它可以检查数组中的任何值是否等于其他数组的任何值,而不只是检查一个单独的值,因为它正确吗?

arrays bash function

5
推荐指数
1
解决办法
1606
查看次数

标签 统计

bash ×4

arrays ×2

awk ×1

compare ×1

diff ×1

function ×1

shell ×1

sorting ×1

unix ×1