首页 > 解决方案 > 尝试使用 bash 从特定字符串 NumberLong("43494254014573") 中提取数字时出现命令未找到错误

问题描述

当我尝试出错时,我需要从字符串中提取数字

val2="NumberLong(\"43494254014573\")"

$val2|awk -F'"' '{print $2}'

-bash:NumberLong(“43494254014573”):找不到命令

标签: bash

解决方案


您需要echo变量,或者以某种方式将其放入awk命令的标准输入管道中。例如

val2="NumberLong(\"43494254014573\")"
echo $val2|awk -F'"' '{print $2}'

或者

val2="NumberLong(\"43494254014573\")"
awk -F'"' '{print $2}' <<< "$val2"

您当前的解决方案尝试执行 的值$val2,这显然不作为可执行文件存在。

编辑:

您可以使用命令替换( https://www.gnu.org/software/bash/manual/html_node/Command-Substitution.html )将结果分配给变量:

val2="NumberLong(\"43494254014573\")"
num=$(awk -F'"' '{print $2}' <<< "$val2")
echo $num

推荐阅读