我有存储当前分辨率的值,例如: $ 2 = 1920x1080 。我想根据x
字符拆分值,并将结果存储在2个变量中。通过上面的例子,第一个变量将存储1920和第二个1080.然后,我想根据这两个值来定义打印命令。
这样做的最佳方式是什么?
答案 0 :(得分:16)
awk '{
res=$2
split(res,resArr,"x")
print "resX=" resArr[1] "\tresY="resArr[2]
}' inFile
如果我理解你的需要。
我希望这会有所帮助。
答案 1 :(得分:16)
取决于我是否正确解释您的需要......
解释1 ,字符串为“1920x1080”
echo 1920x1080 | awk -F"x" '{print $1, $2}'
1920 1080
解释2 ,字符串为“$ 2 = 1920x1080”
$ echo '$2 = 1920x1080' | awk -F"x" 'sub(/\$[0-9] += +/, "", $1){print $1, $2}'
1920 1080
在这两个示例中,宽度位于$1
,高度位于$2
答案 2 :(得分:3)
使用shell参数扩展:
#!/bin/sh
res=1920x1080
res_x=${res%%x*}
res_y=${res##*x}
echo $res_x
echo $res_y
答案 3 :(得分:1)
res='$2 = 1900x1080'
IFS=x
set -- $(egrep -o '[0-9]+x[0-9]+' <<< "$res")
res_x=$1
res_y=$2