将awk结果存储为bash $ {}数据格式

时间:2013-10-07 06:04:56

标签: linux bash shell awk

我有一个关于bash和awk的问题,所以,我将从ps aux过滤进程列表然后我按grep进行过滤,然后我使用{{1}再次过滤它}仅显示进程的pid和路径,然后将其保存到相应的awk${pid}字段。问题是,当我使用awk过滤结果时,我将在${path}上保存这些结果以获取pid数字,将${pid}保存为进程路径,但我根本不知道这样做事情。如果有人在这里有解决方案,将非常感激。

由于

编辑:这是代码

${path}

然后我不知道如何将ps aux | grep 'firefox' | awk '{print $2 " " $11}' 内容保存到$2${pid}$11,并将这些字段再次保存到txt文件中。

4 个答案:

答案 0 :(得分:1)

这应该这样做:

read pid path <<< $(ps aux | grep 'firefox' | awk '{print $2 " " $11}')

答案 1 :(得分:0)

如果其他所有方法都失败,请记住您拥有可以使用的磁盘。将结果传递给文件,然后使用awkcut两次处理文件,将字段分配给相应的变量。

例如:

$result > tmp
pid=`cat tmp | cut -f 1`
path=`cat tmp | cut -f 2`
rm tmp

答案 2 :(得分:0)

使用set:

out=$(ps aux | grep 'nginx' | awk '{print $2 " " $11}' )
set $out
pid=$1
path=$2
echo $pid
echo $path

答案 3 :(得分:0)

awk_output=($(ps aux | awk '/firefox/{print $2, $11}'))
pid="${awk_output[0]}"
path="${awk_output[1]}"

如果你的路径可以包含空格,你需要一个不同的解决方案,包括设置IFS。