对于 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)
无法正常工作。
请查看先前的帖子以获取更多详细信息: 访问使用 awk 在文件中查找字符串!
任何帮助将不胜感激。
arr=$(echo "$a" | awk -v str=start '$2 ~ "^" str "[0-9]*" { print $2; exit; }')
- undefineda-/filepath
的Shell代码?也许你需要使用export a=/filepath
。并且请记住,在Linux/Unix中,所有的文本,包括变量名,都是区分大小写的。$a
和$A
是两个不同的变量。我已经警告过你了!;-) 祝你好运。 - undefined$a
之前加了一个逗号?这样做没有帮助。在你的第二个arr=
中,你使用了-v VAR
,这是awk的内部变量,但是你在awk中从未引用过VAR
。变量$a
只在shell中可见,对awk来说是不可见的。如果你有a=/filepath
,那么你的命令将尝试执行awk ... ,/filepath
。注意到问题所在的逗号!让你的其中一行awk
输出你需要的数据,而不要将其包裹在arr=$(..)
中。一旦这个工作正常,再添加arr=$(...)
。祝你好运。 - undefined