cherry_202
cherry_202
采纳率25%
2021-02-06 14:43

ubuntu awk: ^未终止的正则表达式?

10
已采纳

ubuntu终端用vim编辑器新建了一个predeal.sh脚本文件,执行predeal.sh脚本文件,截取数据集中在双11的前10000条交易数据作为小数据集small_user_log.csv,命令如下:

  1. chmod +x ./predeal.sh
  2. ./predeal.sh ./user_log.csv ./small_user_log.csv结果显示:
  3. awk: 命令行:12 } ./user_log.csv
  4. awk: 命令行:12 ^ syntax error
  5. awk: 命令行:12 } ./user_log.csv
  6. awk: 命令行:12 ^ 未终止的正则表达式

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • weixin_41830716 规则边缘 2月前

    你这不是awk表达式与输入文件之间没加空格嘛~

    点赞 评论 复制链接分享
  • bill20100829 歇歇 2月前

    建议封装函数调用

    点赞 评论 复制链接分享
  • bill20100829 歇歇 2月前

    使用这种方法使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。只要确保使用单引号防止外壳进行任何扩展即可。

    点赞 评论 复制链接分享

为你推荐