awk中使用shell变量疑问

王朝other·作者佚名  2008-05-18
宽屏版  字体: |||超大  

2002/01/01

1312 32132 AA 32132131

#!/bin/sh

echo "ENTER:"

read key

cat tt|awk '{if(prev=="$key")print;prev=$1}

以上内容

如果我输:2002/01/01

没结果输出!

又错了?

你的想法不错,但awk中不能如此使用变量,可改成以下形式,便可以了。

echo "enter:"

read key

export key

cat filename|awk '{if(prev==ENVIRON["key"])print;prev=$1}'

这样也可以:

echo "enter:"

read key

cat filename|awk '{if(prev=="'$key'")print;prev=$1}'

还有很多种方法.就不一一列举了.可以查看于awk有关的帖子.

版主。在AWK中使用SHELL变量还有别的方法吗?除了你使用的:

export value

a=environ['key']

-v 选项也可以指定一个变量

这个问题原来讨论过,搜索一下吧

shell变量传给awk,我会这样用,尤其当传入的变量特长(>399byte)时!!!

export a="hello"

awk 'BEGIN{ "echo $a" | getline x; print x; }'

var1=abcd

var2=efgh

echo "" | awk -v first=$var1 -v second=$var2 '{print first""second}'

[DISPLAY] abcdefgh

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有