【问题标题】:How can you run AWK in a Bash script?如何在 Bash 脚本中运行 AWK?
【发布时间】:2010-10-19 09:22:31
【问题描述】:

问题与我的回答here有关。

我无法让以下代码工作

#!/bin/bash 
wget http://www.google.com/coop/cse?cx=017685108214920485934%3Aizx6pzojwka -O CSE-spanien
awk '/^searches [1-9]* sites, including:/ { print $2 }' CSE-spanien

错误消息示例 [已编辑]

$./code
--2009-04-14 19:01:32--  http://www.google.com/coop/cse?cx=017685108214920485934%3Aizx6pzojwka
Resolving www.google.com... 74.125.79.103, 74.125.79.99, 74.125.79.147, ...
Connecting to www.google.com|74.125.79.103|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `cse?cx=017685108214920485934:izx6pzojwka.6'

    [ <=>                                                                                                               ] 8,096       --.-K/s   in 0s      

2009-04-14 19:01:33 (78.0 MB/s) - `cse?cx=017685108214920485934:izx6pzojwka.6' saved [8096]

./code: line 3: -O: command not found
awk(57264) malloc: *** error for object 0x4eee0: Non-aligned pointer being freed (2)
*** set a breakpoint in malloc_error_break to debug
awk: cmd. line:1: fatal: cannot open file `/Users/Masi/Documents/test/CSE-spanien' for reading (No such file or directory)

如何在 Bash 脚本中运行 AWK?

【问题讨论】:

    标签: bash awk


    【解决方案1】:

    一些随意的想法

    • 检查路径---脚本环境中使用的路径。 awk 在您的环境中被命名为“awk”吗?
    • 考虑将HERE documents 用于重要的脚本
    • 您需要重定向输出吗?那么标准误呢?
    • 是否应该捕获前一个进程的退出状态并先做一些决策?
    • 从您的错误消息看来,您可以使用if [ -f FileToUse ]。如果您不确定 wget 会输出输出,您可能需要强制输出 (-O)。

    【讨论】:

      【解决方案2】:

      您在wget 行的末尾缺少-O CSE-spanien。因此,CSE-spanien 不存在 - wget 正在将其保存为文件名为 cse?cx=017685108214920485934:izx6pzojwka.2 的 HTML。

      【讨论】:

      • 感谢您的帮助!问题在于 wget 中的选项 -O 和我计算机中的 PATH。
      【解决方案3】:

      问题是 wget 没有在当前工作目录中创建CSE-spanien 文件。我建议您检查文件的创建位置并在 awk 命令中添加文件的完整或相对路径。测试预期文件是否存在也是明智之举 (test -f CSE-spanien &amp;&amp; awk ...)

      【讨论】:

        猜你喜欢
        • 2012-10-29
        • 2021-05-02
        • 2018-08-28
        • 2015-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多