计算各类文本以"|"分隔的tar.gz文件第20和21个字段之和,提高性能脚本
时间: 2024-02-27 09:53:04 浏览: 18
可以使用GNU Parallel和awk来实现该功能,具体步骤如下:
1. 使用GNU Parallel并行处理多个tar.gz文件。假设tar.gz文件存放在/data目录下:
```bash
ls /data/*.tar.gz | parallel "tar -xzf {} -O | awk -F '|' '{print \$20+\$21}'"
```
这条命令会列出/data目录下所有的tar.gz文件,然后使用GNU Parallel并行处理每个文件,解压并输出第20和21个字段的和。
2. 如果需要输出每个文件的结果,可以在parallel命令中加入echo:
```bash
ls /data/*.tar.gz | parallel "echo {}; tar -xzf {} -O | awk -F '|' '{print \$20+\$21}'"
```
这样就会在结果中输出每个文件的名称。
3. 如果需要将结果保存到文件中,可以使用重定向符号">":
```bash
ls /data/*.tar.gz | parallel "echo {}; tar -xzf {} -O | awk -F '|' '{print \$20+\$21}'" > result.txt
```
这样就会将所有结果保存到result.txt文件中。
注意,上述命令中的awk命令使用了-F参数来指定分隔符为"|",$20和$21分别表示第20和21个字段。由于$符号在bash中有特殊含义,因此需要使用反斜杠来转义。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)