相关疑难解决方法(0)

在Bash中将命令的输出读入数组

我需要将脚本中的命令输出读入数组.该命令例如是:

ps aux | grep | grep | x 
Run Code Online (Sandbox Code Playgroud)

并且它按行给出输出,如下所示:

10
20
30
Run Code Online (Sandbox Code Playgroud)

我需要将命令输出中的值读入数组,然后如果数组的大小小于3,我将做一些工作.

arrays bash

83
推荐指数
3
解决办法
11万
查看次数

是否有一个字段可以存储在正则表达式中使用的确切字段分隔符 FS,相当于 RS 的 RT?

GNU Awk 的 4.1.2 Record Splitting with 中,gawk我们可以阅读:

RS是单个字符时,RT包含相同的单个字符。但是,whenRS是正则表达式,RT包含与正则表达式匹配的实际输入文本。

这个变量RT某些情况下非常有用。

同样,我们可以设置一个正则表达式作为字段分隔符。例如,在这里我们允许它是“;” 或“|”:

$ gawk -F';' '{print NF}' <<< "hello;how|are you"
2  # there are 2 fields, since ";" appears once
$ gawk -F'[;|]' '{print NF}' <<< "hello;how|are you"
3  # there are 3 fields, since ";" appears once and "|" also once
Run Code Online (Sandbox Code Playgroud)

但是,如果我们想再次打包数据,我们没有办法知道两个字段之间出现了哪个分隔符。因此,如果在前面的示例中我想遍历字段并使用 再次将它们打印在一起FS,它会在每种情况下打印整个表达式:

$ gawk -F'[;|]' '{for (i=1;i<=NF;i++) printf ("%s%s", $i, FS)}' …
Run Code Online (Sandbox Code Playgroud)

awk gnu

11
推荐指数
2
解决办法
176
查看次数

标签 统计

arrays ×1

awk ×1

bash ×1

gnu ×1