对以下脚本进行优化while IFS=',' read col1 col2 col3 col4 col5 col6 col7 do mkdir -p $col7 cp $col6 $col7 done < resultSum.csv
时间: 2023-08-08 18:13:25 浏览: 58
对于这个脚本,可以考虑以下的优化方案:
1. 使用 awk 命令代替 while 循环
awk 命令能够更快地读取文件内容,因此可以用来替代 while 循环。以下是使用 awk 命令的优化方案:
```bash
awk -F"," '{system("mkdir -p "$7" && cp "$6" "$7)}' resultSum.csv
```
2. 使用 xargs 命令代替 while 循环
xargs 命令能够将输入转换为参数,并且能够并行执行命令。可以使用 xargs 命令来并行执行 mkdir 和 cp 命令。以下是使用 xargs 命令的优化方案:
```bash
cat resultSum.csv | xargs -I {} -P 8 bash -c 'mkdir -p $(echo {} | cut -d "," -f 7) && cp $(echo {} | cut -d "," -f 6) $(echo {} | cut -d "," -f 7)'
```
其中 -P 8 参数指定了使用 8 个进程进行并行处理。
3. 使用 rsync 命令代替 cp 命令
rsync 命令能够实现增量复制,并且具有更好的性能。可以使用 rsync 命令来代替 cp 命令。以下是使用 rsync 命令的优化方案:
```bash
awk -F"," '{system("mkdir -p "$7" && rsync -av "$6" "$7)}' resultSum.csv
```
以上都是对原脚本的优化方案,你可以根据具体情况选择其中一种或多种方案进行优化。