Linux 我们能从文件中执行grep和sed并将输出推送到变量中吗
试图从文件中执行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 "^/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
将变量的输出存储到控制台。Doecho“$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