将 sed 的输出存储到变量中

Posted

技术标签:

【中文标题】将 sed 的输出存储到变量中【英文标题】:Store output of sed into a variable [duplicate] 【发布时间】:2011-10-08 14:42:41 【问题描述】:

我想将文件的第二行存储到一个变量中,所以我这样做:

sed -n '2p' myfile

我希望将sed 命令的输出存储到一个名为line 的变量中。

执行此操作的正确语法是什么?

【问题讨论】:

【参考方案1】:

一般来说,

variable=$(command)

variable=`command`

后一种是旧语法,首选$(command)

注意:variable = .... 表示执行命令variable,第一个参数=,第二个参数....

【讨论】:

我试过这个...它不工作线 = sed -n '2p' myfile 只是挂起... 第二种方法对我有用,谢谢@KarolyHorvath :)【参考方案2】:

像这样使用command substitution:

line=$(sed -n '2p' myfile)
echo "$line"

还要注意= 符号周围没有空格。

【讨论】:

这也挂了....我开始认为我不完全理解我遇到的问题。 你使用的命令和我说的一样吗? 当然....我做了一个更新,现在它可以工作了。非常感谢大家【参考方案3】:
line=`sed -n 2p myfile`
echo $line

【讨论】:

我已经修正了你答案的格式。【参考方案4】:

要将第三行存储到变量中,请使用以下语法:

variable=`echo "$1" | sed '3q;d' urfile`

要将更改的行存储到变量中,请使用以下语法: 变量=echo 'overflow' | sed -e "s/over/"OVER"/g" 输出:溢出

【讨论】:

以上是关于将 sed 的输出存储到变量中的主要内容,如果未能解决你的问题,请参考以下文章

Bash 脚本将命令输出存储到变量中

将命令的输出存储在变量中[重复]

将系统命令的输出存储到 r 中的变量中

将 arp -g 的输出存储到 powershell 变量中

在不使用 out 参数的情况下将存储过程输出捕获到变量中

将 for 循环中的多个打印输出值存储到列表或变量中