Awk 如何使用fish shell将多行输出读入单个变量?
我想我误解了在fish中使用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 |
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/{…