次のように、現在の解像度を格納する値があります:$ 2 = 1920x108。 x
文字に基づいて値を分割し、結果を2つの変数に格納したいと思います。上記の例では、最初の変数は1920を格納し、2番目の変数は1080を格納します。次に、これら2つの変数に基づいてprintコマンドの定義を作成します。
これを行うための最良の方法は何ですか?
awk '{
res=$2
split(res,resArr,"x")
print "resX=" resArr[1] "\tresY="resArr[2]
}' inFile
私があなたのニーズを正しく理解していれば。
これがお役に立てば幸いです。
私があなたのニーズを正しく解釈するかどうかに依存します...
解釈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
に配置されます。
シェルパラメータ展開の使用:
#!/bin/sh
res=1920x1080
res_x=${res%%x*}
res_y=${res##*x}
echo $res_x
echo $res_y
res='$2 = 1900x1080'
IFS=x
set -- $(egrep -o '[0-9]+x[0-9]+' <<< "$res")
res_x=$1
res_y=$2