Bash
嘗試從文件中執行 grep 和 sed 並將輸出推送到變數中
我們可以從文件中執行 grep 和 sed 並將輸出推送到變數中嗎
grep "^/dev/disk/by-id/scsi-*" /tmp/disks.txt | sed '{'s/=.*//'}'
輸出將是這樣的:
/dev/disk/by-id/scsi-3644a8420420897001f2af8cc054d33bb /dev/disk/by-id/scsi-3644a8420420897001ef50fcb0f778b86-part3 /dev/disk/by-id/scsi-3644a8420420897001ef50fcb0f778b86-part2
錯誤:
[/~]# grep "^/dev/disk/by-id/scsi-*" /tmp/disks.txt | sed {'s/=.*//'} >> $x -bash: $x: ambiguous redirect
我們可以將所有 3 行都推入一個變數並用 foreach 呼叫它們嗎?謝謝!
我已經測試過,以下都在 bash shell 中工作:
x=`grep "^/dev/disk/by-id/scsi-*" /tmp/disks.txt | sed {'s/=.*//'}` x=$(grep "^/dev/disk/by-id/scsi-*" /tmp/disks.txt | sed {'s/=.*//'})
注意第一行是反引號,而不是單引號。
您問題中的 >> 字元將輸出發送到文件,而不是變數。
要回答第二部分,是的,使用上面的輸出,for 循環可以工作:
for line in $x do echo $line done