bash - Unix:awk 将值保存为变量
问题描述
我有一个带有几个下划线的文件名:
nc_glals_3_4.mrc
在那里我可以用 awk 读出值 3 和 4:
$ echo "nc_glals_3_4.mrc" | awk -F'[_.]' '{print$3$4}'
34
但是如果我想将3
4 作为变量存储并调用该变量,它就不起作用:
$ variable=$("nc_glals_3_4.mrc" | awk -F'[_.]' '{print $3$4}')
-bash: nc_glals_3_4.mrc: command not found
$ variable="$("nc_glals_3_4.mrc" | awk -F'[_.]' '{print $3$4}')"
-bash: nc_glals_3_4.mrc: command not found
$ variable
-bash: variable: command not found
怎么了?
解决方案
就像你echo
在命令行中使用的一样,你也需要echo
在子进程调用中使用,例如:
# wrong:
$ variable=$("nc_glals_3_4.mrc" | awk -F'[_.]' '{print $3$4}')
# right:
$ variable=$(echo "nc_glals_3_4.mrc" | awk -F'[_.]' '{print $3$4}')
# or using here string:
$ variable=$(awk -F'[_.]' '{print $3$4}' <<< "nc_glals_3_4.mrc")
然后echo
再次使用来显示变量的值:
$ echo "${variable}"
34
推荐阅读
- sql - SQL Case 语句,具有 2 个条件的别名值
- ios - 更改模态视图控制器的cornerRadius
- http - 如何使用带有 Jetty 的 InputStreamResponseListener 了解响应媒体类型
- mysql - 查询重写编码断言检查防止sql注入攻击
- python - 在 Python 中使用 pytest 覆盖率和 codecov.io
- java - 计算工作线程在处理消息时所花费的时间
- python - 为什么随着数据库的增长,插入速度会变慢?
- c# - VS 2019 中的大规模 NuGet 包管理器崩溃
- c# - 在剃刀页面中找不到 Web.Pages.Shared.Components 剃刀组件
- wordpress - shell_exec / require_once / 插件 add_action 没有工作