输出显示所有数字,但我只需要前8位数字。谁能告诉我如何获得它们?
我尝试了什么:
[root@localhost ~]# perl -e 'open (DATA, "test.txt");while (<DATA>){s/[^\d]+//g;print $_,$/;}'
20140410223029
20140411043251
20140409150003
20120801114354
答案 0 :(得分:3)
仅打印前8位,
perl -lne 'print /^(\d{8})/' test.txt
或者如果你想跳过正则表达式不匹配的行,
perl -lne 'print $1 if /^(\d{8})/' test.txt
答案 1 :(得分:1)
您只需拨打substr
perl -lne 'print substr $_, 0, 8' test.txt
或者
perl -lpe 'substr($_, 8) = ""' test.txt