试图从文件中执行grep和sed,并将输出推送到variables中

我们可以从文件中执行grepsed,并将输出推送到variables中

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行变成一个variables,并用foreach调用它们吗? 谢谢!

我已经testing了,下面两个工作在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/=.*//'}) 

注意第一行是反引号,而不是单引号。

您的问题中的>>字符将输出发送到文件,而不是variables。

回答第二部分,是的,使用上面的输出,for循环的工作原理是:

 for line in $x do echo $line done