ubuntu awk:12 unexpected character ','?

nbutu上新建了一个predeal.sh脚本文件,请在这个脚本文件中加入了代码,再输入

  1. chmod +x ./predeal.sh
  2. ./predeal.sh ./user_log.csv ./small_user_log.csv结果显示这个?

     

修改一下,加个-f

#!/usr/bin/awk -f

现在是这样了

 

  1. 摆脱所有那些虚假的NULL语句(在行尾跟踪分号)。
  2. eq从所有比较中摆脱掉未设置的变量(它不是相等运算符!)。
  3. 清理缩进。
  4. 摆脱第一条非功能性nameIsValid;声明。
  5. 更改printf "\n"为简单print ""
  6. 摆脱无用的,FSarg split()
  7. 更改name && tolower(name) ~ /^[a-z]+$/为该条件的第二部分,因为如果匹配则将填充课程名称。
  8. 除去所有这些,tolower()并使用字符类而不是显式a-z范围。
  9. 摆脱tmp变量。
  10. 简化您的BEGIN逻辑。
  11. nameIsValid完全摆脱不必要的变量。
  12. 使awk主体更像awk一样

或者分割成数组

IFS=', '
read -r -a array <<< "$string"
IFS=' ' # reset IFS

使用这种方法使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