Linux从文本行内剪切字段

问题描述

我要从以下行中剪切; XXm m:; XXm:

Xmorg.camunda.bpm.engine.context          ;XXm m:;XXm ENGINE-XXXXX Exception while
Xma.ExceptionLoggingFilter    ;XXm m:;XXm Uncaught exception thrown
Xmb.ExceptionHandlerController;XXm m:;XXm handle exception

这会剪掉整行:

cut -d" " -f2,3 

我想要的结果是:

Xmorg.camunda.bpm.engine.context          ENGINE-XXXXX Exception while
Xma.ExceptionLoggingFilter    Uncaught exception thrown
Xmb.ExceptionHandlerController handle exception

Xmorg.camunda.bpm.engine.context ENGINE-XXXXX Exception while 
Xma.ExceptionLoggingFilter Uncaught exception thrown
Xmb.ExceptionHandlerController handle exception

解决方法

我想要反转结果:),我想从此fil中剪切; XXm m:; XXm

cut --complement -d" " -f2,3 

cut -d" " -f1,4-

了解正则表达式。

sed 's/;XXm m:;XXm//'
,

我不知道它是否有效:

[Alex@Normandy templates]$ echo "Xmorg.camunda.bpm.engine.context ;XXm m:;XXm ENGINE-XXXXX BPMN Stack Trace:" | cut -d" " -f2,3 
;XXm m:;XXm

如果您想反转,可以使用Python,例如:


>>> x="Xmorg.camunda.bpm.engine.context ;XXm m:;XXm ENGINE-XXXXX BPMN Stack Trace:"
>>> x_splited=x.split()
>>> " ".join(x_splited[:1]+x_splited[3:])
'Xmorg.camunda.bpm.engine.context ENGINE-XXXXX BPMN Stack Trace:'
,

好吧,您误用了“切”这个词。

cut -d" " -f1,4

这将从字符串中准确提取第一项和第四项

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...