如何解析一个。dat文件,并获得模式,如时间戳和文件大小的。jar文件声明里面?
在数据文件中有很多文本,但我试图找到这样的行:
perl -nle "print $1 if /(d+s+d{4}-d{2}-d{2}sd{2}:d{2}:d{2}s+.*?.jar)/" input.dat
或者使用grep:
几乎相同grep -Eo "[[:digit:]]+[[:space:]]+[[:digit:]]+.[[:digit:]]+.[[:digit:]]+[[:space:]]+[[:digit:]]+.[[:digit:]]+.[[:digit:]]+[[:space:]]+.*?.jar" input.dat
grep使用POSIX regex语法,它更重,所以我尽可能坚持使用perl变体。
更新:要获取特定文件名的数据,请将"最接近.jar"模式(.*?.jar
)替换为所需的文件名:
perl -nle "print $1 if /(d+s+d{4}-d{2}-d{2}sd{2}:d{2}:d{2}s+sample.jar)/" input.dat
或
grep -Eo "[[:digit:]]+[[:space:]]+[[:digit:]]+.[[:digit:]]+.[[:digit:]]+[[:space:]]+[[:digit:]]+.[[:digit:]]+.[[:digit:]]+[[:space:]]+sample.jar" input.dat