【发布时间】:2019-04-24 15:19:38
【问题描述】:
我有一个包含很多行的日志文件,格式如下:
IP - - [Timestamp Zone] 'Command Weblink Format' - size
我想写一个 script.sh 来告诉我每个网站被点击的次数。 命令
awk '{print $7}' server.log | sort -u
应该给我一个列表,将每个唯一的网络链接放在一个单独的行中。命令
grep 'Weblink1' server.log | wc -l
应该给我点击 Weblink1 的次数。我想要一个命令,将上面的 Awk 命令创建的每一行转换为一个变量,然后创建一个循环,在提取的 web 链接上运行 grep 命令。我可以使用
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "Text read from file: $line"
done
(来源:Read a file line by line assigning the value to a variable)但我不想将 Awk 脚本的输出保存在 .txt 文件中。
我的猜测是:
while IFS='' read -r line || [[ -n "$line" ]]; do
grep '$line' server.log | wc -l | ='$variabel' |
echo " $line was clicked $variable times "
done
但我不太熟悉循环连接命令,因为这是我第一次。这个循环可以工作吗?如何连接我的循环和 Awk 脚本?
【问题讨论】: