Linux 我们能从文件中执行grep和sed并将输出推送到变量中吗

Linux 我们能从文件中执行grep和sed并将输出推送到变量中吗,linux,bash,shell,sed,Linux,Bash,Shell,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-3644a84204

试图从文件中执行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
如果我这样做

x=`grep "^/dev/disk/by-id/scsi-*" /tmp/disks.txt | sed {'s/=.*//'}` 

我得到:

[root@localhost ~]# $x
-bash: /dev/disk/by-id/scsi-4644a8420420897001f2af8cc054d33bb: No such file or directory
不知何故,它试图解析磁盘路径

我们能把所有3行都推到一个变量中吗?
谢谢

下一行将值推送到变量

x=$(grep“^/dev/disk/by id/scsi-*”/tmp/disks.txt | sed{s/=.*/})


但是,
$x
将执行x中的每一行。尝试
echo$x
获取存储在变量中的所有行的输出。虽然在一个变量中存储多行不是一个好主意,因为有可能会出现结束行字符的混乱,但是您也可以尝试将输出存储到文件中并读取它。这将保存与格式化相关的错误。

下一行将值推送到变量

x=$(grep“^/dev/disk/by id/scsi-*”/tmp/disks.txt | sed{s/=.*/})


但是,
$x
将执行x中的每一行。尝试
echo$x
获取存储在变量中的所有行的输出。虽然在一个变量中存储多行不是一个好主意,因为有可能会出现结束行字符的混乱,但是您也可以尝试将输出存储到文件中并读取它。这将保存与格式化相关的错误。

$x
将以单独的命令运行存储在变量中的行。您需要使用
echo
printf
将变量的输出存储到控制台。Do
echo“$x”
printf“%s\n”$x”
$x
将以单独的命令运行存储在变量中的行。您需要使用
echo
printf
将变量的输出存储到控制台。执行
回显“$x”
打印“%s\n”$x”
[root@localhost ~]# $x
-bash: /dev/disk/by-id/scsi-4644a8420420897001f2af8cc054d33bb: No such file or directory