数组是一个包含相同数据类型项目的容器,可以是整数类型,也可以是浮点类型。我们可以通过对数组进行若干操作来处理数组。一个常用的Delima是将数组断开,并将每个字打印在一个新的行上。今天的文章将讨论这一功能。为了理解这个概念,你需要进入Ubuntu终端,在Ubuntu上执行bash相关的条款。我们从最简单的例子到关键的例子来介绍这个话题,以便于用户理解。
例子1
在这个例子中,取一个变量并给它赋值。该值是一个长字符串。为了让字符串的结果在新的行中出现,我们将把变量的值分配给一个数组。为了确保字符串中存在的元素数量,我们将使用相应的命令打印元素的数量。
Sa="我是一个学生。我喜欢编程"
{a} )
{#arr[@]}元素。"
你会看到,结果值显示了带有元素编号的信息。其中'#'号只用来计算存在的字数。[@]显示的是字符串元素的索引号。而"$"符号是用于变量。
为了在新的一行中打印每个单词,我们需要使用"%s'\n "键。'%s'是指读取字符串直到最后。同时,'\n'将单词移到下一行。为了显示数组的内容,我们将不使用 "#"号。因为它只带来存在的元素的总数。
{arr[@]}"
你可以从输出中观察到,每个词都显示在新行上。而且每个词都用单引号引出,因为我们在命令中提供了这个功能。这是可选的,你可以转换没有单引号的字符串。
例2
通常情况下,通过使用制表符和空格将一个字符串分解成数组或单字,但这通常会导致许多中断。我们在这里使用了另一种方法,那就是使用IFS。这个IFS环境处理显示了一个字符串是如何被分解并转换为小数组的。IFS的默认值是" \n\t"。这意味着空格、新行和制表符可以将数值传递到下一行。
在当前的例子中,我们不会使用IFS的默认值。但相反,我们将用一个单字符的换行来代替它,IFS=$'\n'。因此,如果你使用空格和制表符,将不会导致字符串断裂。
现在取三个字符串并将它们存储在字符串变量中。你会看到,我们已经通过使用制表符将这些值写到了下一行。当你打印这些字符串时,它将形成一个单行而不是三个。
$str=" 我是一个学生
我喜欢编程
我喜欢的语言是.net。"
str
现在是时候在命令中使用IFS的换行符了。同时,将变量的值分配给数组。声明之后,采取打印的方式。
'\n'arr=( ${str} )
{arr[@]}"
你可以看到结果。这表明每个字符串都被单独显示在一个新的行中。在这里,整个字符串被当作一个词来处理。
这里有一点需要注意:命令结束后,IFS的默认设置又被恢复了。
例3
我们也可以限制数组的值在每个换行时显示。取一个字符串并把它放在变量中。现在像我们之前的例子那样,将其转换或存储在数组中。并简单地用前面描述的同样方法取打印。
现在注意输入的字符串。这里我们在名字部分使用了两次双引号。我们已经看到,每当遇到句号时,数组就会在下一行停止显示。这里在双引号后使用了句号。因此,每个词将被显示在不同的行上。两个词之间的空格被视为一个中断点。
$x=( name=" Ahmad Ali But"。我喜欢读。"favsubject=Biology")
{x} )
{arr[@]}"
由于句号在 "Butt "之后,所以数组的中断在此停止。"I "在写的时候,句号之间没有任何空格,所以它和句号是分开的。
考虑一下另一个类似概念的例子。所以下一个词在句号后没有显示。所以你可以看到,只有第一个词被显示出来的结果。
$ x=(name="shawa"."fav subject"=" English")
例四
这里我们有两个字符串。在括号内各有3个元素。
$array1=(apple banana peach)
$array2=(mango orange cherry)
然后我们需要显示两个字符串的内容。声明一个函数。在这里,我们使用关键字 "typeset",然后将一个数组分配给一个变量,其他数组分配给另一个变量。现在我们可以分别打印这两个数组。
$ a () {
Typeset -nfirstarray=2
Printf '%s\n' 1st:"${firstarray[@]}"
Printf '%s\n' 2nd: "${secondarray[@]}" }
现在要打印该函数,我们将使用该函数的名称和前面声明的两个字符串名称。
$ a array1 array2
从结果中可以看出,两个数组中的每个字都显示在一个新行中。
例5
这里声明了一个有三个元素的数组。为了在新的一行中分隔它们,我们使用了一个管道和一个用双引号引用的空格。数组中各自索引的每个值作为管道后的命令的输入。
$array=(Linux Unix Postgresql)
{array[*]}.| tr" " "/n"
这就是空格的作用,在新的一行中显示数组的每个字。
例6
我们已经知道,在任何命令中使用"\n "都会把后面的所有字移到下一行。这里有一个简单的例子来阐述这个基本概念。每当我们在句子的任何地方使用"\"与 "n",它就会导致下一行。
$ printf"%b\n" "All that glitters is \not gold"
所以这个句子被减半并移到下一行。向下一个例子,"%b\n "被替换。在这里,一个常数"-e "也被用于命令中。
$ echo-e "hello world!I am \new here"
因此,"\n "后面的字被移到下一行。
例七
我们在这里使用了一个bash文件。这是一个简单的程序。其目的是为了展示这里使用的打印方法。它是一个 "For循环"。每当我们通过一个循环来打印一个数组时,这也会导致数组在新行上的独立字数的断裂。
对于$a 中的字
Do
Echo$word
done
现在我们将从文件的命令中进行打印。
结论
有几种方法可以使你的数组数据在替代行上对齐,而不是在单行上显示。你可以在你的代码中使用任何给定的选项来使它们有效。