我可以使用什么程序获取txt文档的文件名,并在同一文档的每一行之前写入文件名。 例如:
文件名:document1.txt
文档行内的是这样的:
1.-text text text
2.-text text text
3.-text
我希望它们是自动的:
document1.txt 1.-text text text
document1.txt 2.-text text text
document1.txt 3.-text
我这样做是为了对数千个txt文件的内容进行排序,每一行都用数字列出,所以如果我合并它们,那么当我对内容进行排序时,我不会失去秩序。 如果我能够输入文件的名称,如果我对合并的内容进行排序就可以了。
因为document1可以使用英语 但另一份文件1是西班牙语 但两者都列出了相同的行数。
我想在一个文档中合并它们,但是超过3万txt 在合并所有这些之后,我想要英语和西班牙语版本。
document1.txt 1.-(english) text text text
document1.txt 1.-(spanish) text text text
document1.txt 2.-(english) text text text
document1.txt 2.-(spanish) text text text
document1.txt 3.-(english) text
document1.txt 3.-(spanish) text
在英文文档的每一行中我都是这样的:
1.- <english> text ........
2.- <english> text .......
etc
并且西班牙文件的每一行都是这样的:
1.- <spanish> text ........
2.- <spanish> text .......
etc
我不知道如何实现这一目标,请你能提出一些不太难的建议吗? 我不是程序员,我想知道是否有软件可以做到这一点。
我只需要在文档的每一行之前放置文件的名称。 像脚本一样。
非常感谢,我试着详细解释我的问题,但英语不是我的母语。如果有任何错误,我很抱歉。 来自墨西哥的问候。
答案 0 :(得分:1)
这是一个完成工作的perl脚本:
#!/usr/bin/perl
use warnings;
use strict;
foreach my $file (glob("*.txt"))
{
my $newfile = $file;
$newfile =~ s/\.txt$/_modified.txt/;
open IN,"<$file";
open OUT, ">>$newfile";
while (<IN>) { print OUT $file . " " . $_ }
close IN;
close OUT;
}
它使用您在同一目录中的.txt文件执行的操作,并将结果写入* _modified.txt(以便不破坏您的原件)