[英]parse string error missing command when passing to sed
有人可以解釋如何正確地將變量傳遞給sed
並僅返回881 747
嗎? 我試過了:
coords=$(xdotool getmouselocation) #x:881 y:747 screen:0 window:56623110
echo $(coords)|sed '/[[:digit:]]/'
失敗的原因有幾個(我都無法弄清楚該如何解決):
sed
/:[0-9]+\\sy:[0-9]+/
,但失敗的甚至更糟。 我是否必須運行sed兩次,一次獲取x值,一次獲取y值? 這應該按照您的要求進行。
coords="x:881 y:747 screen:0 window:56623110"
echo ${coords//:/} | sed 's/[[:alpha:]]//g' | awk '{print $1,$2}'
881 747 #output
分解:
echo ${coords//:/}
被使用bash字符串替換以除去的所有實例:
從輸出字符串。
sed 's/[[:alpha:]]//g'
從輸出中刪除所有[[:alpha:]]
字符。
awk '{print $1,$2}'
打印前兩個字段; 在這種情況下881 747
只能使用awk完成此操作(無需使用sed)。
coords="x:881 y:747 screen:0 window:56623110"
echo $coords | awk -F "[: ]" '{print $2,$4;}'
輸出:
881 747
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.