回答问题评论中的附加请求

回答问题评论中的附加请求

仅删除日期和时间(即05-09-2018-10.13) 来自下面的字符串

/pi_nfs/pixin/axpin-zhgahh/was_logs/was_admin_logs/start_WPS.log.05- 
09-2018-10.13:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember stop 
completed.
/pm_nfs/pmfin/axpin-zhgahh/was_logs/was_admin_logs/start_WPS.log.05- 
09-2018-23.00:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember stop 
completed.

我尝试了下面的组合,但它返回了我

命令:

zgrep -i "AppClusterMember stop completed" /pi_nfs/pixin/axpin 
zhgahh/was_logs/was_admin_logs/start_WPS.log.05-09-2018*|cut -d '.' -f3

输出:

05-09-2018-10.13:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember 
stop completed
05-09-2018-23.00:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember 
stop completed

预期输出:

05-09-2018-10.13
05-09-2018-23.00

答案1

回答

grep -Eo "[0-9]{2}-[0-9]{2}-[0-9]{1,4}-[0-9]{2}\.[0-9]{2}" file

解释

标志:

-E- 使用扩展正则表达式。 (允许使用正则表达式中的某些字符而不转义它们。)

-o- 仅打印匹配的输出。

正则表达式:

[0-9]- 如果字符是0-中的数字,则匹配该字符9

[0-9]{x}x-如果连续字符是数字,则匹配连续字符0- 9

[0-9]{x,y}x-如果它们是数字,则至少匹配连续字符0-9但如果有更多字符,则匹配最多的y字符。

-没有特殊含义,grep会尝试匹配确切的字符-

.意味着any character必须使用转义来\表示确切的字符.

回答问题评论中的附加请求

zgrep -Po "[0-9]{2}-[0-9]{2}-[0-9]{1,4}-[0-9]{2}\.[0-9]{2}(?=.*stop completed\.)" file.gz

解释

zgrep 手册:

Zgrep 在压缩或 gzip 压缩的文件上调用 grep。
所有指定的选项都直接传递给 grep。

因此,我将只解释新添加的标志和正则表达式部分。

标志:

-P- 使用 Perl 正则表达式。 (允许前瞻)

正则表达式:

(?=.*stop completed\.)(?=- 正则表达式从到 的部分)被称为Positive look-ahead
在这种情况下,它与之前的正则表达式匹配仅有的如果该行包含stop completed.之后。

答案2

echo "/pi_nfs/pixin/axpin-zhgahh/was_logs/was_admin_logs/start_WPS.log.05-09-2018-10.13:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember stop completed." | cut -d"." -f3,4 | cut -d":" -f1

输出是

05-09-2018-10.13

所以我想你需要类似下面的东西

cut -d"." -f3,4 YOUR_FILENAME | cut -d":" -f1

YOUR_FILENAME您要使用的实际文件名在哪里

答案3

awk -F: '{split($1,a,".");print a[3]"."a[4]}' input.txt

zgrep -i "AppClusterMember stop completed" /pi_nfs/pixin/axpin zhgahh/was_logs/was_admin_logs/start_WPS.log.05-09-2018* | awk -F: '{split($1,a,".");print a[3]"."a[4]}'
  • -F:按 :(冒号)分割记录
  • split($1,a,".") - 将记录 1 分割为 。 (点)并将值保留在称为 a 的数组中
  • print a[3]"."a[4] - 打印数组值。

相关内容