gpt4 book ai didi

linux - 在格式化的 bash 脚本中比较日期和日志

转载 作者:太空宇宙 更新时间:2023-11-04 12:00:13 25 4
gpt4 key购买 nike

在这个脚本中我必须:

1) 打印当前日期

2) 打印最后修改日志文件的日期

3) 如果当前日期等于 log1 和 log2 mod。日期、log1、log2的行数

4) 如果当前日期等于 log1 和 log2 mod。日期,对它们的行求和 (wc log1 + wc log2)

5) 如果 log1 和 log2 的行之和 > 100,

exit 2

6) 如果是当前日期和上次修改的日期。 log1和log2的行数不同,设置log1的行数为0,log2的行数为0。

到目前为止,这是我的脚本。如果你想测试它,将这个 .sh 脚本保存在你的主目录中,并在你的主目录中创建一个非空的 log_1.log 文件和一个非空的 log_2.log文件。

第 29 行有语法错误。

#!/bin/bash

#current date
printf "Current date:\n"

current_date=$(date +'%d %B' | cut -c1-7) #

echo $current_date #

###########################################################

printf "Last modify date of log 1:\n"

date_log_1=$(ls -oF log_1.log | gawk '{print $6" ", $5'})

echo $date_log_1

printf "Last modify date of log 2:\n"

date_log_2=$(ls -oF log_2.log | gawk '{print $6 " ", $5'})

echo $date_log_2

if [[ $current_date == $date_log_1 ]]; then
count_line1=$(wc -l log_1.log)
printf "log 1 lines are \n $count_line1 \n"

# sum count lines
sum=$(("$count_line1 + $count_line2"))

fi #end

if [[ $current_date == $date_log_2 ]]; then
count_line2=$(wc -l ciao2.log)
printf "log 2 lines are \n $count_line2 \n"

sum=$(($count_line1 + $count_line2))

fi

# is sum > 100?
if [[ sum > 100 ]];
then
exit 2;
fi

###########################################################

if [[ $current_date != $date_log_1 ]]; then
# set line count at 0
echo -n "" > log_1.log # set word count at 0
fi

if [[ $current_date != $date_log_2 ]]; then
# set line count at 0
echo -n "" > log_2.log # set word count at 0
fi

最佳答案

你可能想修复这条线

date_log_1=$(ls -oF log_1.log | gawk '{print $6" ", $5'})

date_log_1=$(ls -oF log_1.log | gawk '{print $6" ", $5}')

(下面还有一条类似的线。)

关于linux - 在格式化的 bash 脚本中比较日期和日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52775998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com