我有一个文件xyz.txt
,其中包含以下信息:
19-10-13-404566 1-3039 1 xyz
19-10-14-890768 1-3039 2 zxv
..........................
我希望文件的第一列在Perl中转换为19*3600 + 10*60 + 13
(68473)。
答案 0 :(得分:2)
perl -ne 's/^(\d+)-(\d+)-(\d+)/$1*3600+$2*60+$3/e; print'
但顺便说一句,你的数学错误就是这个例子。 19 * 3600 + 10 * 60 + 13是69013。
答案 1 :(得分:0)
根据你所写的内容,你无法弄清楚你所描述的转变是如何起作用的。但是Perl FAQ中的这个条目可以帮助您实际更改文件的内容。
How do I change, delete, or insert a line in a file, or append to the beginning of a file?
答案 2 :(得分:0)
perl -pi -e 's/^(\d+)-(\d+)-(\d+)/$1*3600+$2*60+$3/e' xyz.txt
这将替换文件中的第一列。