我有这样的文件
FHEAD0000000001RTLG202106182103132021061430914
THEAD0000000002100 202106141001180000000310
TITEM
THEAD
TITEM
FTAIL
我想从 FHEAD 记录中提取商店和营业日期 文件中只有一个 FHEAD 记录
商店从位置 41 - 5digits ON FHEAD RECORD 营业日期从位置 33 - 8 digits ON FHEAD RECORD
我试过下面的命令
perl -lne ' ($s, $d) = (substr($_, 41, 5), substr($_, 33, 8)) if /FHEAD/; print "$ARGV,$s,$d"; ' $file
但它正在遍历文件中的所有记录并打印多行而不是一行我得到的输出为然而,应该只有一行
RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2 ,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119 .dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614 RTLOG_OMS_30914_20210618210313_71111119.dat.2,30914,20210614