Linux 使用sed从wget读取网站的字节计数
我试图只打印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 http://google.com --spider --server-response
我收到一长串要搜索的终端输出。其中一条是
Content-Length: 219
我所要做的就是把219号读出来打印到标准输出。我在另一个堆栈溢出线程()上找到了答案
我理解这个命令有两个主要困难。我希望有人能向我详细解释这两件事
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
insed
)
与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
insed
)
与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命令可以进一步缩减,asp
可以用作s//
的修饰符:sed-n's/^Content Length://p'
wget http://google.com --spider --server-response 2>&1 | awk '/Content-Length/{print $2}'