需要一些unix脚本的帮助
我的文件如下所示:
certificate: DPCert_CryptoCer [up]
certificate: ELABpreprod_CA1V2_CER [up]
certificate: ELABpreprod_CA2V2_CER [up]
certificate: ELABpreprod_PUBROOT_CER [up]
certificate: hbosIssuerCert [up]
certificate: hbosRootCert [up]
certificate: MQ_CryptoCer [up]
我的脚本应该只将以下内容输出到文件中:
DPCert_CryptoCer
ELABpreprod_CA1V2_CER
ELABpreprod_CA2V2_CER
ELABpreprod_PUBROOT_CER
hbosIssuerCert
hbosRootCert
MQ_CryptoCer
任何有关sed / awk / grep的帮助都将不胜感激。
答案 0 :(得分:2)
如果要打印第二个字段,请使用:
$ awk '{print $2}' file
DPCert_CryptoCer
ELABpreprod_CA1V2_CER
ELABpreprod_CA2V2_CER
ELABpreprod_PUBROOT_CER
hbosIssuerCert
hbosRootCert
MQ_CryptoCer
如果您需要的是倒数第二个字段,请使用:
$ awk '{print $(NF-1)}' file
DPCert_CryptoCer
ELABpreprod_CA1V2_CER
ELABpreprod_CA2V2_CER
ELABpreprod_PUBROOT_CER
hbosIssuerCert
hbosRootCert
MQ_CryptoCer
要将内容保存到另一个文件中,请重定向命令:
awk '{print $2}' file > new_file
或
awk '{print $(NF-1)}' file > new_file
使用grep
:
$ grep -Po '(?<=certificate: )[^[]*' file
DPCert_CryptoCer
ELABpreprod_CA1V2_CER
ELABpreprod_CA2V2_CER
ELABpreprod_PUBROOT_CER
hbosIssuerCert
hbosRootCert
MQ_CryptoCer
它会打印certificate:
之后的所有内容以及[
字符。
答案 1 :(得分:1)
尝试sed
sed -r 's/.* (.*) .*/\1/' file
如果字段由空字符分隔,并且您想获得第二个字段,则可以使用剪切
cut -d' ' -f2 file