gpt4 book ai didi

linux - 将 AWK 的多个结果保存到 shell 变量

转载 作者:太空宇宙 更新时间:2023-11-04 11:12:43 32 4
gpt4 key购买 nike

将 AWK 脚本的多个结果保存到 c shell 变量。

我在终端中运行了一个简单的 AWK 脚本,用于从输入文本文件中查找最大值和最小值。

我们如何将这个最大值和最小值保存到 c shell 变量以便以后使用。

这是 AWK

awk 'NR == 1 { xmax=$1; xmin=$1 } \
{ if ($1>xmax) xmax=$1; if ($1<xmin) xmin=$1;} \
END {printf "X-Min: %d\tX-Max: %d\n", xmin, xmax}' $inpfile

我想将其保存在已经定义的变量中,比如说 $xmin 和 $xmax

任何建议都会有很大的帮助,我以前没有使用 SHELL 和 AWK 的经验。

最佳答案

正如其他人所说,您不能将值从 awk 传递到 shell。

您需要依赖 shell 的能力来执行 cmd 替换。

回到我只有 csh 的时候,我会做

setenv xmin_xmax = `awk 'NR == 1 { xmax=$1; xmin=$1 } \
{ if ($1>xmax) xmax=$1; if ($1<xmin) xmin=$1; printf("%d|%d\n", xmin, xmax}' $inpfile`

setenv xmin = `echo "$xmin_xmax" | sed 's/|.*$//'`
setenv xmax = `echo "$xmin_xmax" | sed 's/*.|//'`

抱歉,我现在无法访问 csh 来测试它。当您使用 awk 进行 cmd 替换时,您可能需要更多连续字符 \ 来连接这些行。

如果您对此有困难,请将错误消息作为评论发布,我会看看我是否能记住特殊的 csh 咒语。

编辑或查看 Grymoire CSH tips了解如何在 csh 中使用数组变量。 (我不记得这个了!)

IHTH

关于linux - 将 AWK 的多个结果保存到 shell 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22354400/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com