我编写了以下脚本作为练习:
#!/bin/bash
MyFile=$1
while read p; do
error=$(echo $p | awk '{print $11}')
if [ "$error" = "500" ]
then
echo $p
fi
done < $MyFile
问题是脚本运行缓慢,需要几个小时才能完成,我的设置:
- Windows 10 上的 Ubuntu(64 位,配备英特尔 i7 6400 2.80GHz 和 8G Ram)。
我的设置或脚本逻辑有问题吗?谢谢,
答案1
使用$(
运行子 shell,管道 也是如此|
。最好在一个 shell 或一种语言中完成所有工作。
例如在 awk 中完成所有工作:
awk '($11==500){print}' "$1"
或者无需支付任何费用:
while read -a columns ; do
[[ ${columns[10]} == 500 ]] && echo "${columns[@]}"
done < "$1"