【问题标题】:How to get third column, first row with Sed in Linux? [closed]如何在 Linux 中使用 Sed 获取第三列第一行? [关闭]
【发布时间】:2020-04-07 03:06:58
【问题描述】:

我在 Oracle 数据库服务器上运行此命令

dbcli list-dbhomes

这导致我有 3 列和 5 行信息。我需要一种方法在 Sed 中只获取第 3 列、第 1 行。如果您正在运行该命令,我需要一种仅获取显示的 ID 号的方法。我想出了如何使用我的代码获取第 1、2 和 3 列的第一行

dbcli list-dbhomes |  sed 's/ .*//'

但无法弄清楚如何仅获取第一列的第三行。

【问题讨论】:

  • 在这样的情况下,我们鼓励用户添加他们为解决自己的问题而付出的努力,所以请添加您的问题,然后让我们知道。
  • 好的,现在请检查我编辑的问题。
  • headcut 可能更干净。类似dbcli list-dbhomes | head -n 1 | cut -f 3 -d ' '
  • 如果你的问题会在这里结束,我建议重新尝试unix.stackexchange.com

标签: linux sed command-line


【解决方案1】:

这对awk来说应该是一件容易的事。

dbcli list-dbhomes |  awk 'FNR==1{print $3}'

注意: 以上命令认为dbcli list-dbhomes 的输出分隔符是空格,以防我们可能需要在我的代码中更改它。



使用head + cut

dbcli list-dbhomes | head -n1 | cut -d' ' -f3

【讨论】:

    【解决方案2】:

    如果你有3列5行,想用sed获取第3列第1行,可以使用

    sed -n 's/.* //;1p'
    

    如果您使用“行”和“列”这两个词的方式与大多数人不同,您可以使用

    sed -n 's/ .*//;3p'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多