给定模式后如何在文件中剪切字符串?

时间:2019-07-23 11:54:54

标签: bash

我大约有7000条不同的行,所有这些行通常都是相似的表达。我需要切掉X之后的所有内容。

我得到了以下几行:

        service_description     PING
        service_description     NSClient++ Version
        service_description     Uptime
        service_description     CPU Load
        service_description     Memory Usage physical
  service_description     Druckerserver-Sicherung
  service_description     Hyper-V Host Cluster

前5行中有一个TAB,后2行中只有一个空格。 在两列之间有一个TAB,最后两列只有多个空格。

如果它们都是相似的,由于制表符/空格,由于数字不同,我可以只剪掉一定数量的数字。

这就是我得到的:

        service_description     PING
        service_description     NSClient++ Version
        service_description     Uptime
        service_description     CPU Load
        service_description     Memory Usage physical
  service_description     Druckerserver-Sicherung
  service_description     Hyper-V Host Cluster

这就是我需要的:

PING
NSClient++ Version
Uptime
CPU Load
Memory Usage physical
Druckerserver-Sicherung
Hyper-V Host Cluster

2 个答案:

答案 0 :(得分:1)

尝试一下(我将定界符设置为制表符或多个空格(至少2个):

awk -F"\t|  +" '{print $3}' file

输出:

PING
NSClient++ Version
Uptime
CPU Load
Memory Usage physical
Druckerserver-Sicherung
Hyper-V Host Cluster

答案 1 :(得分:0)

awk '{$1=""}1' file
 PING
 NSClient++ Version
 Uptime
 CPU Load
 Memory Usage physical
 Druckerserver-Sicherung
 Hyper-V Host Cluster