gpt4 book ai didi

linux - 我们可以从文件中执行 grep 和 sed 并将输出推送到变量中吗

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:18 25 4
gpt4 key购买 nike

尝试从文件执行 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/=.*//'}` 

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 获取存储在变量中的所有行的输出。尽管将多行存储在一个变量中不是一个好主意,因为结束行字符有可能出现乱码,但您也可以尝试将输出存储到一个文件中并读取它。这将避免与格式相关的错误。

关于linux - 我们可以从文件中执行 grep 和 sed 并将输出推送到变量中吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44151282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com