我在一个文件中有以下几行:
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
将分隔符设置为
|
并打印第二个字段。