Awk 如何使用fish shell将多行输出读入单个变量?

Awk 如何使用fish shell将多行输出读入单个变量?,awk,fish,Awk,Fish,我想我误解了在fish中使用read来提取多行输入。以下是我的基本脚本: ~> ps -aux | grep python | awk '/anaconda2/ {print $2,$9}' 3113 10:11 6079 10:20 12266 14:06 14648 Apr01 23460 Apr01 23984 Apr01 25064 Apr01 27110 00:10 我想用read--list--line将其读入单个变量,但我只得到第一行数据: ~> ps -aux |

我想我误解了在fish中使用
read
来提取多行输入。以下是我的基本脚本:

~> ps -aux | grep python | awk '/anaconda2/ {print $2,$9}'
3113 10:11
6079 10:20
12266 14:06
14648 Apr01
23460 Apr01
23984 Apr01
25064 Apr01
27110 00:10
我想用
read--list--line
将其读入单个变量,但我只得到第一行数据:

~> 
ps -aux | grep python | awk '/anaconda2/ {print $2,$9}' | read -l --list --line pids_starts
~> echo $pids_starts
3113 10:11
如果我使用
read-z
我得到了所有的值,但它们被分割成单独的变量:

~> ps -aux | grep python | awk '/anaconda2/ {print $2,$9}' | read -l --list -z pids_starts
~> echo $pids_starts
3113 10:11 6079 10:20 12504 14:13 14648 Apr01 23460 Apr01 23984 Apr01 25064 Apr01 27110 00:10
~> count $pids_starts
16
~> echo $pids_starts[1]  
3113
如何使用
read
将每行输出设置为不同的数组元素?我还认为我误解了AWK是如何界定输出的,但我不确定


谢谢

命令替换将在换行符上拆分,因此只需执行以下操作:

set -l pids_starts (ps -aux | grep python | awk '/anaconda2/ {print $2,$9}')

ps-aux
在我的系统上需要是
ps aux
,但是YMMV)

命令替换将在换行符上拆分,所以只需执行以下操作:

set -l pids_starts (ps -aux | grep python | awk '/anaconda2/ {print $2,$9}')

ps-aux
在我的系统上需要是
ps-aux
,但是YMMV)

您可以将grep模式移动到awk:
ps-aux | awk'/python/&/anaconda2/{…
您可以将grep模式移动到awk:
ps-aux | awk'/python/&/anaconda2/{…