当进程转到第二天的 nohup 脚本时,需要创建新的日志文件。
以下是日志数据
script.ksh 2024/02/19 23:59:59
script.ksh 2024/02/20 00:00:00
script.ksh 2024/02/20 00:00:01
我正在寻找第二天到达时的 grep 脚本,但它不起作用。
尝试使用 grep -E 和 SED。 Grep -E 无法在脚本中进行 grep,但可以在命令行中运行
我将利用 GNU
AWK
来完成此任务,让 file.txt
内容为
script.ksh 2024/02/19 23:59:59
script.ksh 2024/02/20 00:00:00
script.ksh 2024/02/20 00:00:01
然后
awk '{d=$2;gsub(/[^[:digit:]]/,"",d);print $0 > ("file" d ".txt")}' file.txt
创造
file20240219.txt
持有
script.ksh 2024/02/19 23:59:59
和
file20240220.txt
持有
script.ksh 2024/02/20 00:00:00
script.ksh 2024/02/20 00:00:01
说明:我将第二个字段值存储在变量
d
中,然后删除 d
中的所有非数字(请注意,在文件名中使用 /
是个坏主意,因为它看起来像路径,如果您发现 8 位数字不可读,则可能会选择替换为 _
而不是空字符串,这将导致 2024_02_19
和 2024_02_20
)。然后我将当前行 (print
) 保存到名为 $0
的文件中,然后是存储在变量 d 中的内容,然后是 file
。 免责声明此解决方案假设文件中的不同天数少于 GNU
.txt
能够一次打开的文件数。(在 GNU Awk 5.1.0 中测试)