目前在工作上需要做一些 linux sh的文字處理
目的就是想要從字串 1080x2160x60vid 中,拿出2160這個數字
根據chatGPT的說法,就是先將第一個x前面的數字1080刪掉,再從剩餘的字串中拿出第一個x之前的2160。
===完整的範例===
mode_file=/sys/class/drm/card0-DSI-1/modes
while read line; do
fb_width=${line%%x*};
temp=${line#*x};
fb_height=${temp%%x*};
break;
done < $mode_file
echo $fb_width $fb_height
輸出結果為 1080 2160
===
也可以利用另一個IFS方法
範例. 將讀取的資料分離
使用 IFS (Internal Field Separator) ,資料會依據 IFS 所定義的區隔符號將一行資料中的資料儲存成不同變數.
1 2 3 4 |
while IFS=":" read -r f1 f2 f3 f4 f5 f6 f7; do echo "User:" $f1 done < /etc/passwd |
==
while IFS="x" read -r fb_width fb_height fb_fps; do
break;
done < $mode_file
==
相關說明
以上作紀錄方便日後查找。
文章標籤
全站熱搜
留言列表