解析日期和时间格式-Bash

荣誉

我有这样的日期和时间格式(yearmonthday):

20141105 11:30:00

我需要分配年,月,日,小时和分钟的值以进行变量。

我可以按年,日和小时进行操作,如下所示:

year=$(awk '{print $1}' log.log | sed 's/^\(....\).*/\1/')
day=$(awk '{print $1}' log.log | sed 's/^.*\(..\).*/\1/')  
hour=$(awk '{print $2}' log.log | sed 's/^\(..\).*/\1/')  

如何在一个月和一分钟内执行此操作?

-

我需要日志文件的每一行:

20141105 11:30:00 /bla/text.1
20141105 11:35:00 /bla/text.2
20141105 11:40:00 /bla/text.3
.... 

我正在尝试逐行读取此日志文件并执行以下操作:

mkdir -p "/bla/backup/$year/$month/$day/$hour/$minute"
mv $file "/bla/backup/$year/$month/$day/$hour/$minute"

这是我不工作的代码:

#!/bin/bash
LOG=/var/log/LOG

while read line
do

year=${line:0:4}
month=${line:4:2}
day=${line:6:2}
hour=${line:9:2}
minute=${line:12:2}
file=$(awk '{print $3}')

if [ -f "$file" ]; then

printf -v path "%s/%s/%s/%s/%s" $year $month $day $hour $minute
mkdir -p "/bla/backup/$path"
mv $file "/bla/backup/$path"

fi
done < $LOG
格伦·杰克曼

您根本不需要调出awk的日期,使用bash的子字符串操作

d="20141105 11:30:00"
yr=${d:0:4}
mo=${d:4:2}
dy=${d:6:2}
hr=${d:9:2}
mi=${d:12:2}
printf -v dir "/bla/%s/%s/%s/%s/%s/\n" $yr $mo $dy $hr $mi
echo "$dir"
/bla/2014/11/05/11/30/

或直接,没有所有变量。

printf -v dir "/bla/%s/%s/%s/%s/%s/\n" ${d:0:4} ${d:4:2} ${d:6:2} ${d:9:2} ${d:12:2}

给定您的日志文件:

while read -r date time file; do
    d="$date $time"
    printf -v dir "/bla/%s/%s/%s/%s/%s/\n" ${d:0:4} ${d:4:2} ${d:6:2} ${d:9:2} ${d:12:2}
    mkdir -p "$dir"
    mv "$file" "$dir"
done < filename

或者,假设您的文件名中没有空格或通配符:

sed -r 's#(....)(..)(..) (..):(..):.. (.*)#mv \6 /blah/\1/\2/\3/\4/\5#' | sh

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

以特定格式解析日期和时间

来自分类Dev

Bash中日期和时间的组合表示

来自分类Dev

按bash中的日期和时间过滤

来自分类Dev

linux bash-以自定义格式解析日期

来自分类Dev

用Java解析和格式化日期和时间

来自分类Dev

在 bash 中提取和格式化时间戳

来自分类Dev

在Excel,Chrome和Firefox中解析的日期时间格式

来自分类Dev

Bash:从其他时区获取日期和时间

来自分类Dev

在文件中插入执行bash脚本的日期和时间

来自分类Dev

Bash显示网页中的日期和时间值

来自分类Dev

在文件中插入执行bash脚本的日期和时间

来自分类Dev

按bash中的月份,日期和时间过滤日志文件

来自分类Dev

bash打印带有用户,日期和时间的日志

来自分类Dev

从bash中的字符串中提取日期和时间

来自分类Dev

打印本周开始的日期和时间(在 bash 中)

来自分类Dev

解析多种格式的日期时间

来自分类Dev

解析日期和时间

来自分类Dev

Bash脚本转换日期格式

来自分类Dev

使用Bash输出日期格式

来自分类Dev

Bash比较使用日期的时间

来自分类Dev

解析Bash内置时间的输出

来自分类Dev

解码时间和日期格式

来自分类Dev

Python日期和时间格式

来自分类Dev

日期和时间格式错误

来自分类Dev

解析日期和时间-JavaScript

来自分类Dev

Bash函数顺序和时间

来自分类Dev

在Excel中解析日期/时间格式

来自分类Dev

如何从这种格式解析日期时间?

来自分类Dev

Bash命令日期的-d选项格式