iT邦幫忙

0

liunx連續執行相同指令

  • 分享至 

  • xImage

不太確定標題這樣下是不是很正確
目前有查詢的需求,指令where_used uid name
這個uid的name數量可觀,想以檔案來取代(設定為name.json)
where_use uid $(cat < name.json)

目前遇到的問題是
當uid只有一個的時候可以執行
但uid多個的時候執行指令時會將檔案內的所有uid視為一個uid
導致執行後系統查詢不到uid
https://ithelp.ithome.com.tw/upload/images/20221117/20043247Yp3miUDWoo.jpg
目標是顯示每一個uid的資訊
後續再用jq來做資料提取
請問一下要怎樣讓指令去執行.json檔案內的每一個uid?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
wiseguy
iT邦超人 1 級 ‧ 2022-11-17 22:39:19
最佳解答

你要先把每個 uid 從 json 中抓出來:

grep -Po '\w+(-\w+){4}' name.json

然後再用迴圈逐一把 uid 餵給你的指令:

for N in `grep -Po '\w+(-\w+){4}' name.json`
do
  where_use uid $N
done
看更多先前的回應...收起先前的回應...
vavava iT邦新手 5 級 ‧ 2022-11-18 16:25:30 檢舉

眼殘還抄錯

wiseguy iT邦超人 1 級 ‧ 2022-11-19 01:01:16 檢舉

大哥,你連抄都抄錯...我也是醉了...
連複製貼上都有障礙嗎?
看看你寫的 for 那行,跟我的有一樣嗎?

vavava iT邦新手 5 級 ‧ 2022-11-21 14:55:41 檢舉

非常抱歉,因為只能用敲的
現在run起來迴圈有跑了,但顯示指令找不到,可能是uid帶入的時候不是在指令最後端?
https://ithelp.ithome.com.tw/upload/images/20221121/200432475myXFr4ZDf.jpg

wiseguy iT邦超人 1 級 ‧ 2022-11-21 23:56:13 檢舉

好暈喔~~
你的 script 明明是 roop.sh,你不執行 sh ./roop.sh,你執行 sh ./uid.json 幹嘛?

vavava iT邦新手 5 級 ‧ 2022-11-22 11:28:29 檢舉

因為我開虛擬機測試都要全部重新再敲過,檔名隨意取的,另外目的已達成,非常感謝你的幫忙!

1
海綿寶寶
iT邦大神 1 級 ‧ 2022-11-17 10:12:07

試試看這篇可不可用

我要發表回答

立即登入回答