迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

在 Bash 中排序数组

作者:迹忆客 最近更新:2023/05/16 浏览次数:

对数组进行排序对于任何编程语言来说都是一项非常常见的任务。 在 Bash 脚本中,我们还可以通过两种不同的方式完成此任务。

第一个使用任何排序算法,第二个使用 Bash 脚本中名为 readarray 的内置关键字。 本文将展示我们如何在 Bash 脚本中对数组进行排序。

此外,我们将看到一些带有解释的示例,以使主题更容易理解。


在 Bash 中使用冒泡排序对数组进行排序

在 Bash 脚本中,您可以使用任何排序算法(如冒泡排序、合并排序等)对数组进行排序。在我们下面的示例中,我们实现了冒泡排序来对数组进行排序。

我们示例的代码如下所示。

MyArray=(9 8 20 10 15)

echo "The original array is:"
echo ${MyArray[*]}

# We implemented the bubble sort here.
for ((i = 0; i<5; i++))
do

    for((j = 0; j<5-i-1; j++))
    do

        if [ ${MyArray[j]} -gt ${MyArray[$((j+1))]} ]
        then
            # swap
            temp=${MyArray[j]}
            MyArray[$j]=${MyArray[$((j+1))]}
            MyArray[$((j+1))]=$temp
        fi
    done
done

echo "The sorted array is:"
echo ${MyArray[*]}

让我们逐行解释上面的例子。

  1. 首先,我们声明了一个名为 MyArray 的数组。
  2. 之后,我们通过 echo ${MyArray[*]} 行显示数组。
  3. 之后,我们创建了两个循环并实现了冒泡排序。 在这些循环中,我们创建了一个条件来判断当前元素是否大于下一个元素。
  4. 如果条件成立,那么我们在数组的这两个元素之间执行交换操作。
  5. 最后,我们只是在排序完成后显示数组。 当您运行上面的程序时,您将得到如下所示的输出。
The original array is:
9 8 20 10 15
The sorted array is:
8 9 10 15 20

在 Bash 中使用 readarray 关键字对数组进行排序

假设您有一个包含字母和数字字符混合的数组。 要对这个数组进行排序,您需要找到不同的方法。

要对该数组进行排序,需要比较字符的 ASCII 值。

Bash 脚本中的内置关键字使您只需一行代码即可完成此操作。 关键字是readarray。

在下面的示例中,我们创建了一个组合字母和数字字符的数组。 在我们使用 readarray 关键字对数组进行排序后,我们显示排序后的数组。

我们示例的代码如下所示。

MyArray=(n a c b 6 7 5)
readarray -t MyArray < <(printf '%s\n' "${MyArray[@]}" | sort)
echo "The sorted list is: ${MyArray[*]}"

执行脚本后,您将获得如下所示的输出。

The sorted list is: 5 6 7 a b c n

请注意 ,本文中使用的所有代码都是用 Bash 编写的。 它只会在 Linux Shell 环境中工作。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Bash 脚本中执行变量中的命令

发布时间:2023/05/18 浏览次数:106 分类:操作系统

本篇文章是关于将 Bash 命令存储在一个变量中,然后直接从这个变量中执行它。 首先,我们将讨论执行变量中包含的命令的多种方法,然后是几个脚本示例。

Bash 变量相乘

发布时间:2023/05/18 浏览次数:50 分类:操作系统

本篇文章介绍如何在 Bash 中将两个变量相乘。在 Bash 中乘以变量。将两个变量相乘在 Bash 中是一个简单的操作。

Bash md5sum 命令

发布时间:2023/05/18 浏览次数:197 分类:操作系统

本篇文章介绍如何在 Bash 中使用 md5sum 命令。Bash md5sum 命令。md5sum 命令打印给定文件的 32 字符和 128 位校验和。

如何在 CentOS 中获取 IP 地址

发布时间:2023/05/04 浏览次数:109 分类:操作系统

这篇简短的文章是对 CentOS 的一个简短介绍,然后简要讨论了我们如何使用命令行界面 (CLI) 在 CentOS 中获取服务器 IP 地址。

在 Linux 中更新 YUM

发布时间:2023/05/04 浏览次数:86 分类:操作系统

本文介绍了 Linux 中的 yum update 命令。本文将教我们如何在 Linux 中更新 YUM,以及如何在 Linux 系统上安装、更新、删除、查找和管理包。

在 Linux 中安装 Deb 文件

发布时间:2023/05/04 浏览次数:133 分类:操作系统

本文介绍如何在 Linux 中安装 deb 文件。在这篇 Linux 文章中,我们将学习如何在 Linux 系统上安装 .deb(Debian 软件包)文件。 我们还将看到如何在安装后删除 .deb 文件。

Linux 中的 lsof 命令

发布时间:2023/05/04 浏览次数:84 分类:操作系统

在这篇 Linux 文章中,我们将了解 Linux 操作系统中的 lsof 命令。 我们将看到如何在 Linux 中将此命令用于不同目的。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便