Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用sed从wget读取网站的字节计数_Linux_Bash_Sed_Wget - Fatal编程技术网

Linux 使用sed从wget读取网站的字节计数

Linux 使用sed从wget读取网站的字节计数,linux,bash,sed,wget,Linux,Bash,Sed,Wget,我试图只打印wget命令输出的一小部分。如果我打字 wget http://google.com --spider --server-response 我收到一长串要搜索的终端输出。其中一条是 Content-Length: 219 我所要做的就是把219号读出来打印到标准输出。我在另一个堆栈溢出线程()上找到了答案 我理解这个命令有两个主要困难。我希望有人能向我详细解释这两件事 sed通常需要输入文件,对吗?通过管道传输wget命令的输出不会使其成为文件。没有这个怎么行 我不明白-e是什么

我试图只打印wget命令输出的一小部分。如果我打字

wget http://google.com --spider --server-response
我收到一长串要搜索的终端输出。其中一条是

Content-Length: 219
我所要做的就是把219号读出来打印到标准输出。我在另一个堆栈溢出线程()上找到了答案

我理解这个命令有两个主要困难。我希望有人能向我详细解释这两件事

  • sed通常需要输入文件,对吗?通过管道传输wget命令的输出不会使其成为文件。没有这个怎么行

  • 我不明白-e是什么意思。我查阅了linux手册页,其中提到它是用于“脚本”的?这个标志很重要,因为没有它,一切都不起作用。这是什么意思?另外,命令的其余部分发生了什么,以及如何打印出数字

  • 很抱歉问一个以前回答过的问题,但我在网上找不到任何有意义的解释,我想尝试用另一种解决方案来解决这个问题

    sed通常需要输入文件,对吗?通过管道传输wget命令的输出不会使其成为文件。没有这个怎么行

    与大多数Unix实用程序一样,
    sed
    将处理作为参数提供的文件,否则它将处理其标准输入

    我不明白-e是什么意思。我查阅了linux手册页,其中提到它是用于“脚本”的?这意味着什么?还有,引用的行中发生了什么

    -e
    用于指示下一个参数是要执行的
    sed
    操作的字符串(文档称之为“脚本”)。这是
    sed
    的第一个参数的默认值,但是您得到的脚本恰好显式地使用了它。当您发出多个命令时,它非常有用,因为如果在附加命令之前不使用
    -e
    ,它们将被视为文件名。另见

    在您的命令中,
    -n
    选项意味着默认情况下,
    sed
    不应打印其输入行——您将使用
    p
    操作显式打印所选行
    /Content Length/
    匹配包含该字符串的行,然后在
    {}
    中对这些匹配行执行一组操作。第一个操作是
    s/*://
    ,它将把
    之前的所有内容以及后面的空格都替换为零。第二个操作是
    p
    ,它打印修改后的行。这样就可以在
    内容长度:
    之后打印数字

    sed通常需要输入文件,对吗?通过管道传输wget命令的输出不会使其成为文件。没有这个怎么行

    与大多数Unix实用程序一样,
    sed
    将处理作为参数提供的文件,否则它将处理其标准输入

    我不明白-e是什么意思。我查阅了linux手册页,其中提到它是用于“脚本”的?这意味着什么?还有,引用的行中发生了什么

    -e
    用于指示下一个参数是要执行的
    sed
    操作的字符串(文档称之为“脚本”)。这是
    sed
    的第一个参数的默认值,但是您得到的脚本恰好显式地使用了它。当您发出多个命令时,它非常有用,因为如果在附加命令之前不使用
    -e
    ,它们将被视为文件名。另见


    在您的命令中,
    -n
    选项意味着默认情况下,
    sed
    不应打印其输入行——您将使用
    p
    操作显式打印所选行
    /Content Length/
    匹配包含该字符串的行,然后在
    {}
    中对这些匹配行执行一组操作。第一个操作是
    s/*://
    ,它将把
    之前的所有内容以及后面的空格都替换为零。第二个操作是
    p
    ,它打印修改后的行。因此,在
    内容长度之后打印数字:

    您仍然可以将
    sed
    命令(
    wget-O
    不需要,
    sed-e
    不需要)减少为:

    在这里,将
    STDERR
    重定向到
    STDOUT
    ,并使
    sed
    对其进行操作。
    sed
    命令的作用是,它禁止打印(
    -n
    ),然后对于包含
    内容长度的行,从开头删除所有字符,包括
    空格
    。然后打印修改后的行(
    p
    in
    sed

    与awk相同

    wget http://google.com --spider --server-response 2>&1 | awk '/Content-Length/{print $2}'
    

    对于包含
    内容长度的行,打印第二个字段(将是数字部分)。

    您仍然可以将
    sed
    命令(
    wget-O
    不需要,
    sed-e
    不需要)减少为:

    在这里,将
    STDERR
    重定向到
    STDOUT
    ,并使
    sed
    对其进行操作。
    sed
    命令的作用是,它禁止打印(
    -n
    ),然后对于包含
    内容长度的行,从开头删除所有字符,包括
    空格
    。然后打印修改后的行(
    p
    in
    sed

    与awk相同

    wget http://google.com --spider --server-response 2>&1 | awk '/Content-Length/{print $2}'
    

    对于包含
    内容长度的行
    ,打印第二个字段(将是数字部分)。

    sed命令可以进一步缩减,因为
    p
    可以用作
    s///
    的修饰符:
    sed-n's/^Content Length://p'
    sed命令可以进一步缩减,as
    p
    可以用作
    s//
    的修饰符:
    sed-n's/^Content Length://p'
    wget http://google.com --spider --server-response 2>&1 | awk '/Content-Length/{print $2}'