gpt4 book ai didi

bash - 将 awk 的输出保存到两个不同的变量

转载 作者:行者123 更新时间:2023-12-05 08:57:31 25 4
gpt4 key购买 nike

好的。我有点迷路,谷歌搜索对我帮助不大。我有这样的命令:

filesize_filename=$(echo $line | awk ' ''{print $5":"$9}') 
echo $filesize_filename
1024:/home/test

现在这个将两个返回或 awk 的项目保存到一个变量中。我想实现这样的目标:

filesize,filename=$(echo $line | awk ' ''{print $5":"$9}')

这样我就可以单独访问它们了

echo $filesize
1024

echo $filename
/home/test

我该如何实现?

谢谢。

最佳答案

用 awk 输出填充一个 shell 数组,然后用它做任何你喜欢的事:

$ fileInfo=( $(echo "foo 1024 bar /home/test" | awk '{print $2, $4}') )
$ echo "${fileInfo[0]}"
1024
$ echo "${fileInfo[1]}"
/home/test

如果文件名可以包含空格,那么你必须适本地调整 awk 中的 FS 和 OFS 以及 shell 中的 IFS。

当然你可能根本不需要 awk:

$ line="foo 1024 bar /home/test"
$ fileInfo=( $line )
$ echo "${fileInfo[1]}"
1024
$ echo "${fileInfo[3]}"
/home/test

但要注意在最后一种情况下 $line 中匹配本地文件名的通配字符。我希望有一种更强大的方法来从 shell 变量填充 shell 数组,但我想不出它。

关于bash - 将 awk 的输出保存到两个不同的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30917997/

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