我在理論上完全在這裏工作,所以請原諒任何誤解。我需要在bash命令return的每一行上運行相同的命令,但只能使用該命令返回的一部分。請注意,這是自定義命令行返回。例如:如何管道CLI返回信息來運行相同的命令
// initial command
> ~$ device findAll
// returned data
Scanning ...
Network Name Hardware Address IPV4 Address Details
test1 CD:F8:D4:15:3B:AE 172.1.3.22 "Blah Blah Blah"
test1 AB:C1:D2:11:31:EF 192.15.31.2 "Blah Blah Blah"
...
test1 CE:A8:B4:16:3A:FD 172.1.6.21 "Blah Blah Blah"
test1 AC:B1:E2:16:21:DF 172.1.6.22 "Blah Blah Blah"
Total: 600 Devices
利用該返回的數據,我需要僅訪問每一行的IPv4地址部分,這樣我可以ssh到所述設備和運行的更新。我知道如何單獨使用每個設備,但返回600個值,這會浪費時間。我也不知道如何忽略標題行和返回數據的總行。
我的問題是:我怎樣才能使用唯一的命令行只訪問返回的數據的IPV6部分?
最終結果將在理論上是這樣的:
> ~$ device findall | while read -r line ; do
//access device by ssh command
scp /current-firmware-pathway/firmware.bin [email protected]**[IPV4 Value Here]**:/tmp/fwupdate.bin
done
如果存放在變量回歸和迭代變量是更有效,我也開到這一結果。預先感謝您的幫助。
你可以在命令輸出中使用'awk'嗎?你在哪個'殼'?你可以粘貼'設備findAll'的完整輸出,包括存在的頭文件嗎? – Inian
我以前根本不知道awk命令。仔細觀察後,考慮到我的外殼,我可以使用它。 Janos在下面的回答很好,我想是你要去的地方。謝謝! – StrangeTim