使用剪切命令

时间:2015-12-16 19:13:09

标签: terminal grep cut

我们说我有这个文件(名为file_1的文件),其中包含:

{
   "a":100,
   "b":2045,
}

如何只保留数字100?

我已经尝试过命令(grep" a" | cut -d':' -f 2)

但我只想要100.我该怎么做?

1 个答案:

答案 0 :(得分:1)

您的命令会生成100,。你需要的只是又一步。有几种选择:

  • 另一个带有字段分隔符,的剪切,选择第一个字段:
    grep "a" | cut -d ':' -f 2 | cut -d ',' -f 1
  • 您还可以使用sed删除(即替换为空格)逗号: grep "a" | cut -d ':' -f 2 | sed "s/,//g"
  • 谈到sed:sed也可以将答案改写成所需的形式:
    grep "a" | sed -E "s/.*:(.*),/\1/g"
    • 这里我们用一些东西代替
      1. :
      2. 之前的部分
      3. 括号中:,之间的一部分
    • \1:这是在括号内匹配的搜索部分,此处是:,之间的数字
  • 单独使用sed会更容易,因为sed也可以执行greps任务:
    sed -E -n '/"a":/ {s/.*:(.*),/\1/g; p }'
    • /"a:"/定义匹配,大括号中的以下部分定义了行匹配时应该执行的操作,此处重写,如上所述,然后使用p打印重写的行。