【发布时间】:2021-03-14 22:56:57
【问题描述】:
我的文件名带有几个下划线:
nc_glals_3_4.mrc
然后我可以用 awk 读出值 3 和 4:
$ echo "nc_glals_3_4.mrc" | awk -F'[_.]' '{print$3$4}'
34
但如果我喜欢将34 存储为变量并调用该变量,则不起作用:
$ 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
怎么了?
【问题讨论】:
-
variable=$(echo "nc_glals_3_4.mrc" | awk -F'[_.]' '{print $3$4}') -
您需要在
$( . . . )内部使用echo,就像在外部一样。 Bash 正在尝试将您的字符串作为程序运行