Command-Line

將下載實用程序(如 wget)的 url 合併到一行中

  • January 14, 2018

考慮以下wget程式碼:

wget -P ~/ https://raw.githubusercontent.com/user/repo/branch/papj.sh
wget -P ~/ https://raw.githubusercontent.com/user/repo/branch/nixta.sh

有沒有什麼優雅的方法可以將上述相同基本 URL 的不同終端合併成一行而不是 2 行或更多行?

虛擬碼:

wget -P ~/ https://raw.githubusercontent.com/user/repo/branch/papj.sh||nixta.sh

由於wget一次接受多個 URL,這可以使用大括號擴展來完成bash

wget -P ~/ https://raw.githubusercontent.com/user/repo/branch/{papj.sh,nixta.sh}

(甚至

wget -P ~/ https://raw.githubusercontent.com/user/repo/branch/{papj,nixta}.sh

但這當然只適用於非常合適的名字)。

我已經通過使用 awk 命令和 for 循環來做到這一點。如有任何疑問和困惑,請告訴我

通過將以下內容放入文件中創建了一個文件 example.txt

貓範例.txt

wget -P ~/ https://raw.githubusercontent.com/user/repo/branch/

我已將 papj.sh nixta.sh 分配給變數 i

使用下面的腳本根據您的要求執行

for i in papj.sh nixta.sh; do awk -v i="$i" '{print $0i}' example.txt; done

輸出

wget -P ~/ https://raw.githubusercontent.com/user/repo/branch/papj.sh

wget -P ~/ https://raw.githubusercontent.com/user/repo/branch/nixta.sh

引用自:https://unix.stackexchange.com/questions/416896