cat node.list | xargs -I {} -P 4 sh -c 'ping -c 3 -q {} >> ping.log' 截取---后的内容保存到ping.log
时间: 2024-03-02 19:49:20 浏览: 19
可以使用以下命令将输出结果保存到 `ping.log` 文件中:
```
cat node.list | xargs -I {} -P 4 sh -c 'ping -c 3 -q {} >> ping.log' 2>&1 | sed -n '/^---/,${/^---/p}' >> ping.log
```
解释一下:
- `2>&1` 将标准错误输出重定向到标准输出,这样才能同时保存错误信息和标准输出。
- `sed -n '/^---/,${/^---/p}'` 用于截取 `ping` 命令的输出结果中 `---` 后面的内容。其中 `^---` 表示以 `---` 开头的行,`/,${}` 表示从匹配到的行开始一直到文件结尾的所有行,`/^---/p` 表示打印以 `---` 开头的行。最后将截取的结果追加到 `ping.log` 文件中。
注意:这条命令会将标准输出和标准错误一起输出到 `ping.log` 文件中,如果不需要保存标准错误的信息,可以去掉 `2>&1` 部分。
相关问题
cat node.list | xargs -I {} -P 16 sh -c 'ping -c 3 -q {} >> ping.log' 2>&1 | sed -n '/^---/,${/^---/p}' >> ping.log 改为同时执行过个脚本
您可以使用`parallel`命令来同时执行多个脚本。以下是使用`parallel`命令并行执行多个脚本的示例:
```
parallel -j 16 ::: "ping -c 3 -q 10.1.2.48 >> ping1.log" "ping -c 3 -q 10.1.2.42 >> ping2.log" "ping -c 3 -q 10.1.2.44 >> ping3.log" "ping -c 3 -q 10.1.2.46 >> ping4.log"
```
在上述命令中,`-j 16`指定了并行执行的作业数,您可以根据需要调整此值。`:::`后面的四个引号内分别是要执行的四个脚本命令,每个命令用双引号括起来,并用空格分隔。每个命令中的`>>`符号将输出追加到对应的日志文件中。您可以根据需要更改每个脚本的命令和日志文件名。
ls *.zip | xargs -d zip -r html.zip
这个命令是用来将当前目录下的所有.zip文件进行递归压缩,并将结果保存为html.zip文件。具体的解释如下:
1. `ls *.zip`:使用ls命令列出当前目录下所有以.zip结尾的文件。
2. `|`:管道符号,将前一个命令的输出作为后一个命令的输入。
3. `xargs -d`:xargs命令用于将前一个命令的输出作为参数传递给后一个命令。-d选项指定了参数的分隔符,默认为空格。
4. `zip -r html.zip`:zip命令用于创建压缩文件,-r选项表示递归地压缩目录。html.zip是要生成的压缩文件名。
综上所述,该命令的作用是将当前目录下的所有.zip文件进行递归压缩,并将结果保存为html.zip文件。