Perl 如何更换,如何更换。在大文本文件中
我希望使用perl编写一个程序,在一个以制表符分隔的大文本文件(100000行)中查找纬度和经度值,并将lat long值中使用的替换为。该文件有多个列 我想把它改成 512356至51.2356 有人能告诉我怎么做吗 非常感谢,你不需要一个“程序”来实现这一点,你只需要一行程序就可以做到这一点。如果您想用整个文件中的Perl 如何更换,如何更换。在大文本文件中,perl,Perl,我希望使用perl编写一个程序,在一个以制表符分隔的大文本文件(100000行)中查找纬度和经度值,并将lat long值中使用的替换为。该文件有多个列 我想把它改成 512356至51.2356 有人能告诉我怎么做吗 非常感谢,你不需要一个“程序”来实现这一点,你只需要一行程序就可以做到这一点。如果您想用整个文件中的(点)替换文件中的所有,(逗号)(您的问题不涉及原始文件格式的细节),那么下面的技巧是: perl-pi.bak-e's/,/\/g;'您的_file.txt 在运行replace
(点)替换文件中的所有,
(逗号)(您的问题不涉及原始文件格式的细节),那么下面的技巧是:
perl-pi.bak-e's/,/\/g;'您的_file.txt
在运行replace之前,它还将备份您的文件,以
您的_file.txt.bak
快速而肮脏的方法是用点替换所有逗号(如果这符合您的要求)
while(){
$\=~s/,/\./g
}
但是,如果有其他字段可能受到影响,更好的解决方案是只替换所需的列
假设您感兴趣的两个字段是制表符分隔文件的第一列和第二列,理想情况下,这两个字段应该匹配,然后替换为“点”
while(){
如果($)=~/(\d+,\d+)\\ |(\d+,\d+)\|(.*)$/){
我的($a,$b,$c)=($1,$2,$3);
$a=~s/,/\./g;
$b=~s/,/\./g;
$|=$a.“|”。$b.“|”。$c;
}
}
这里,,
$a和$b将匹配“纬度和经度”列。谢谢您的帮助,但是,我希望脚本能够找到纬度和经度值。例如,在逗号前加上一到两个数字。如何将此添加到搜索语句中?我认为,如果您想获得问题的更具体答案,您应该改进您的问题,并添加输入和预期输出。我还建议你自己展示一下你迄今为止所做的努力。
while (<$fh>) {
$_ =~ s/,/\./g
}
while (<$fh>) {
if ($_ =~ /(\d+,\d+)\|(\d+,\d+)\|(.*)$/) {
my ($a, $b, $c) = ($1, $2, $3);
$a=~s/,/\./g;
$b=~s/,/\./g;
$_= $a."|".$b."|".$c;
}
}