ubuntu终端用vim编辑器新建了一个predeal.sh脚本文件,执行predeal.sh脚本文件,截取数据集中在双11的前10000条交易数据作为小数据集small_user_log.csv,命令如下:
你这不是awk表达式与输入文件之间没加空格嘛~
使用这种方法使awk识别shell变量:
awk -v "v1=$VAR1" -v "v2=$VAR2" '{print v1, v2}' input_file
更新资料
$ cat input
tinky-winky
dipsy
laa-laa
noo-noo
po
$ teletubby='po'
$ awk -v "regexp=$teletubby" '$0 ~ regexp' input
po
注意,任何东西都可以进入shell变量,甚至是成熟的正则表达式,例如^d.*y
。只要确保使用单引号防止外壳进行任何扩展即可。
建议封装函数调用