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

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

sed -n '2p' myfile

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

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

【问题讨论】:

    标签: bash


    【解决方案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" 输出:溢出

    【讨论】:

      猜你喜欢
      • 2019-03-10
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2018-01-27
      • 2023-02-13
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多