仅打印命令输出中的特定部分行

仅打印命令输出中的特定部分行

我的命令输出是这样的

                                Name: SLP_DCEMA100BAK01.1M__GBLON500BAK04.6M

 Operation  1                Use for: 0 (backup)

                             Storage: stu_disk_dcema100bak01

                     Retention Level: 3 (1 month)

 Operation  2                Use for: 1 (duplication)

                             Storage: stu_cc_gblon500bak04

                     Retention Level: 6 (6 months)

我只想打印“:”之后的部分

预期输出如下

SLP_DCEMA100BAK01.1M__GBLON500BAK04.6M

0 (backup)

stu_disk_dcema100bak01

3 (1 month)

1 (duplication)

stu_cc_gblon500bak04

6 (6 months)

答案1

要删除每行直到(包括)最后:一行的所有内容,请使用

sed 's/.*://'

例如,

你的命令| sed 's/.*://'

如果您的数据(标签后面的部分,您想要保留的部分)可能包含:,您想要删除所有内容第一的 :在行中:

sed 's/^[^:]://'

如果冒号后面有一个空格(如示例所示)并且您也想将其删除,只需在命令中的冒号后面添加一个空格即可:

sed 's/.*: //'

或者

sed 's/^[^:]: //'

答案2

awk -F: '{sub(/^ /,"",$2);print $2}' file

SLP_DCEMA100BAK01.1M__GBLON500BAK04.6M

0 (backup)

stu_disk_dcema100bak01

3 (1 month)

1 (duplication)

stu_cc_gblon500bak04

6 (6 months)

相关内容