linux - 您好,我在意外标记 `(' 附近遇到 :: 语法错误
问题描述
我面临错误:意外标记附近的语法错误`('
EXIST= 'cat Test.csv | sed "1 d" | awk -F, '{ if ($4 != "999.999.999.999" && $4 != "99.99.99.99") {print $1}}' | sort |uniq | wc -l '
谁能帮忙?当我在终端上运行相同的,它运行完美。但是当我尝试在脚本中运行它时,给了我错误
解决方案
复制/粘贴您编写的每个 shell 脚本到http://shellcheck.net并修复它告诉您的问题,直到您了解基础知识,当然在此论坛上发布包含此类脚本的问题之前。当人们发布包含工具可以检测到的错误的脚本时,我们感到很沮丧。
除了错误 shellcheck 会告诉你 - 你不需要cat
或sed
何时使用awk
and sort | uniq
=sort -u
但无论如何你的整个管道可以减少到一个 awk 脚本:
exist=$( awk -F, '(NR>1) && ($4 !~ /^(999?\.){3}999?$/) && !seen[$1]++{cnt++} END{print cnt+0} Test.csv)' )
另请参阅正确的 Bash 和 shell 脚本变量大写,了解我使用exist
而不是EXIST
作为变量名的原因。
但是,您将唯一$1
s 的计数存储在名为 的变量中exist
,这让我想知道您是否真的需要它来保存计数。
推荐阅读
- javascript - 无法在 chime sdk 单一 js 中集成语音焦点
- angular - 将简单的引导模板集成到 Angular 中
- sqlite - 为 SQLite 扩展编译 DLL - xerial/sqlite-jdbc 驱动程序 - 用于 unionvtab 和 swarmvtab
- c++ - 我如何确定一个模板类是否是另一个模板类的子类,因为模板可能不同?
- java - 这应该在数组中获取图像并在将其打印到框架之前调整其大小
- javascript - 如何在 React Native 中无限旋转图像
- java - 从模拟返回不同的值,具体取决于参数
- python - 套接字io中的while循环
- c# - 在 C# 中将文件上传到共享点期间出现异常
- centos - 从 intel oneapi basetoolkit 安装 ICC 时出现许可证文件问题