我在一个文件中有以下几行:

1231231213123123123|W3A|{ (ABCDE)="8=3AF.R.Y2=133AA=9WW=334MNFN=20120925-22:23:59.998
1231231213123123123|4GM|{ (ABCDE)="8=3AF.R.Y2=123AA=9WW=4AF013DCV=EXAMPLE=ABC
1231231213123123123|KYC|{ (ABCDE)="8=3AF.R.Y2=112AA=9WW=0002DDS=20120921-14:55:21

为了获得我使用的“”字符之间的值:
sed -e 's/\(^.*|\)\(.*\)\(|.*$\)/\2/'

输出为:
W3A
4GM
KYC

这是意料之中的。但由于文件有数千条记录,sed命令需要花费大量时间。有没有办法提高这个命令的性能?

最佳答案

在我看来你只是想用切割:

cut -d '|' -f 2 file

将分隔符设置为|并打印第二个字段。

07-28 12:40