awk的问题。

招RD和QA 2002-11-22 03:57:12
awk '
BEGIN { file = '$1' }
END { print file }
' filename

当我这样使用时,为什么awk输出一个空行????????
...全文
63 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwa1980 2002-12-12
  • 打赏
  • 举报
回复
去看看awk中的BEGIN和AND的用法吧,据我理解应该是:在BEGIN中执行的语句是在进行匹配前就运行的,一般做一些预处理,而你真正的动作并没有,所以什么都没打出来啊。
hurilong 2002-11-30
  • 打赏
  • 举报
回复
你那样做是不行的,$1是awk使用的变量,而不是shell传进来变量。
-v表示定义一个awk使用的变量,使用格式为 -v 变量名=值
招RD和QA 2002-11-27
  • 打赏
  • 举报
回复
-v是什么意思,
为什么我的那种做法不行??
wenlq 2002-11-26
  • 打赏
  • 举报
回复
这样能满足你的要求
用-v 把参数传给awk

more aa.awk

awk -v file=$1 '
END { print file }
' filename

./aa.awk firstparameter
firstparameter
招RD和QA 2002-11-25
  • 打赏
  • 举报
回复
$1是shell脚本的参数啊,不是空。
laoer23 2002-11-25
  • 打赏
  • 举报
回复
首先你要$1.是什么了.
由于file='$1'在BEGIN中执行,其实$1是空.
所以打印结果没错.

23,216

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧