在awk的shell中,我可以用变量代替文件路径吗?

在awk的shell中,我可以用变量代替文件路径吗?,shell,Shell,对于awk 我可以用变量代替文件路径吗?? arr=$(awk-v str=start'$2~“^”str“[0-9]*”{print$2;exit;}'/filepath) 注意输出以前在文件路径中,现在在变量“A”中。 尝试了以下操作: arr=$(awk -v str=start '$2 ~ "^" str "[0-9]*" { print $2; exit; }' ,$a) arr=$(awk -v VAR="a" str=start '$2 ~ "^" str "[0-9]*"

对于awk

我可以用变量代替文件路径吗??

arr=$(awk-v str=start'$2~“^”str“[0-9]*”{print$2;exit;}'/filepath)

注意输出以前在文件路径中,现在在变量“A”中。 尝试了以下操作:

  arr=$(awk -v str=start '$2 ~ "^" str "[0-9]*" { print $2; exit; }' ,$a)
arr=$(awk -v VAR="a" str=start '$2 ~ "^" str "[0-9]*" { print $2; exit; }' ,$a)
不起作用

上一篇文章了解更多详细信息: 访问


任何帮助都将不胜感激

这成功了,谢谢阿努巴瓦

使用:


用法:
arr=$(echo“$a”| awk-v str=start'$2~”^“str”[0-9]*“{print$2;exit;}”)
对不起,让我再试一次。。很快就会更新。所以您有shell代码,上面写着(类似于)
a-/filepath
?也许您需要导出a=/filepath。回想一下,所有文本,包括Linux/Unix中的变量名,都是区分大小写的
$a
$a
是两个不同的变量。你已经被警告了!;-)Good luck.arg,为什么在
$a
之前添加逗号?那没用。在您的第二个
arr=
中,您使用的是
-v VAR
,这将是一个awk内部变量,但您从未在awk内部引用
VAR
。变量
$a
仅在shell中可见,对awk不可见。如果有
a=/filepath
,则cmd正在尝试执行
awk/文件路径
。注意有问题的逗号!获取一行
awk
以输出所需的数据,而无需将其包装在
arr=$(..)
中。一旦工作正常,然后添加
arr=$(…)
。祝你好运,一切顺利。谢谢:)
arr=$(echo "$a" | awk -v str=start '$2 ~ "^" str "[0-9]*" { print $2; exit; }')