pyN*_*Nag 2 variables bash shell awk
好的。我有点迷失了,谷歌搜索对我没有多大帮助。我有一个像这样的命令:
filesize_filename=$(echo $line | awk ' ''{print $5":"$9}')
echo $filesize_filename
1024:/home/test
Run Code Online (Sandbox Code Playgroud)
现在,这个将两个 return 或 awk'ed 项目保存到一个变量中。我想实现这样的目标:
filesize,filename=$(echo $line | awk ' ''{print $5":"$9}')
Run Code Online (Sandbox Code Playgroud)
所以我可以像这样单独访问它们
echo $filesize
1024
echo $filename
/home/test
Run Code Online (Sandbox Code Playgroud)
我该如何实现这一目标?
谢谢。
用 awk 输出填充 shell 数组,然后用它做任何你喜欢的事情:
$ fileInfo=( $(echo "foo 1024 bar /home/test" | awk '{print $2, $4}') )
$ echo "${fileInfo[0]}"
1024
$ echo "${fileInfo[1]}"
/home/test
Run Code Online (Sandbox Code Playgroud)
如果文件名可以包含空格,那么您必须适当调整 awk 中的 FS 和 OFS 以及 shell 中的 IFS。
当然,您可能根本不需要 awk:
$ line="foo 1024 bar /home/test"
$ fileInfo=( $line )
$ echo "${fileInfo[1]}"
1024
$ echo "${fileInfo[3]}"
/home/test
Run Code Online (Sandbox Code Playgroud)
但要注意$line在最后一种情况下匹配本地文件名时的通配字符。我希望有一种更强大的方法可以从 shell 变量填充 shell 数组,但我无法想到它。