Articles of 文件

Perl – 如何从分隔的txt文件读取每一行并处理它

我有一个由“:”分隔的文本文件 它有3个领域 字段1 – >文件的名称 field-2 – >文件的源path 字段3 – >文件的目标path 例如。 helloWorld.txt:/home/abc:/home/xyz 现在我必须从源path复制这个文件helloWorld.txt到目标path。 这需要为文本文件中的所有可用行完成。 我不知道我正在尝试的是最佳做法。 它没有工作。 有人可以告诉最好的方法来完成这个? 非常感谢 open FILE, $inputFile or die $!; while(my $file_name=<FILE>) { my ($tmpvar1, $tmpvar2, $tmpvar3) = split(/:/, $_); my $command = "cp ".$tmpvar2. "/". $tmpvar1 $tmpvar3; exce $command; }

处理文件名中的文字空间

我有os.access(filename, os.R_OK)问题,当文件是一个Linux系统上的绝对path与文件名中的空间。 我试过很多引用空格的方法,从"'" + filename + "'" to filename.replace(' ', '\\ ')但是不起作用。 我如何逃避文件名,所以我的shell知道如何访问它? 在terminal,我会把它作为'/home/abc/LC\ 1.a'

比较两个文件在shell中的列

我想做一个非常简单的事情。 我有两个文件,如下所示: FILE 1: A s1 p1 B s2 p2 C s3 p3 FILE2: B s4 p4 A s1 p1 C s6 p6 我想从该文件的文件和打印比较中提取第一列和第三列。 一个简单的方法是创build中间文件与剪切-f1,3这两个文件和做差异。 那是什么我想要我的输出是。 但我不想创build中间文件。 任何简单的class轮都可以做到这一点。 还有一件事,这两个文件都没有sorting,所以无法直接使用连接。

Recusively删除标题中不包含单词的所有文件

您好我想recursion删除目录中的文件名称不包含单词“重量”的各种文件夹中的所有文件。 我怎样才能做到这一点?

回到以前的位置会比寻找新的位置更快吗?

如果我有一个C代码 off_t off = ftello(f); fseeko(f, some_location); // do some work fseeko(off); 第二个fseeko和第一个一样慢吗? 我曾以为文件块总是被caching,所以第二个可以更快。 在我在Linux上的分析结果中,第二个fseek的成本相似。 这是预期的吗?

使用python在linux中合​​并文件时文件大小的巨大减less

我写了一个脚本,其中包含一个文件的文件夹,并使用Python的多处理池库将它们组合成最大大小为500MB的文件。 脚本获取文件夹中的文件列表,并将其分成16个列表,每个列表映射到一个进程。 在每个进程中,组合的临时文件由每个列表中的一组文件组成。 在获得所有这16个文件后,我将这16个文件按顺序合并,并删除临时文件。 我在ext4文件系统的CentOS系统上运行这个,并且我传递了一个大小为930 MB的文件夹,其中186147个文件分布在50个子文件夹中,它给了我一个单一的文件作为输出,大小为346 MB。 我很困惑如何减less文件大小如此之多。 请注意,这些186147文件中的每一个在开始时都有一个额外的头文件,在最终的组合文件创build过程中被忽略,但只有头文件只有233个字节。 为了检查我的脚本是否正确,我检查了合并文件(3083015)中的总行数,它匹配186147个文件(3269162)中的行数总和(186147)。 我也试图猫单个文件和行看起来是完整的,但我没有通过整个文件。 有什么我在这里失踪? 这是我使用的并行函数: curr_write_file_name = os.path.join(output_folder, str(list_index) + '_' + "00000.flows") curr_write_file = open(curr_write_file_name, 'w') curr_write_file.write(header) curr_write_count = 1 for curr_file in file_list: print('Processing', curr_file) netflow_read = open(curr_file, 'r') for index, line in enumerate(netflow_read): if index == 0: continue else: curr_write_file.write(line) if os.stat(curr_file).st_size >= 500000000: […]

你怎么知道用户目前打开了哪些文件?

我正在尝试编写一个脚本或一段代码来存档文件,但是我不想存档任何当前打开的文件。 我需要find一种方法来确定打开目录中的文件。 我想要使​​用Perl或shell脚本,但可以尝试使用其他语言,如果需要的话。 它将在Linux环境中,我没有select使用lsof。 我也有热熔器的不一致的结果。 谢谢你的帮助。 我试图把一个目录中的日志文件,并将其移动到另一个目录。 如果文件是开放的,我不想对他们做任何事情。

大量的文件连接

我有一个目录文件名大约3-4百万个文件,以type1.txt, type2.txt. (文件是1type1.txt, 1type2.txt,2type2.txt,2type2.txt等) 现在我想连接所有以type1.txt&type2.txt结尾的文件。 目前我正在为type2.txt同样做cat *type1.txt > allTtype1.txt type2.txt 。 我想保留最终输出文件的顺序,这是我的猜测, cat是这样做的。 但是太慢了。 请build议一些更快的方法来做同样的事情。 谢谢,拉维

为什么fopen(“any_path_name”,“r”)不能返回NULL?

在debugging一些代码时,我得到如下所示: #include<stdio.h> int main() { FILE *fb = fopen("/home/jeegar/","r"); if(NULL == fb) printf("it is null"); else printf("working"); } 这里fopen我给了一个有点有效的path名称,但不是一个文件名。 不应该fopen返回NULL呢? 但它不会返回null! 编辑: 如果我在fopen中给出path of valid directory那么它将打印working : 如果我在fopen中给出path of invalid directory那么它将打印it is null 编辑: spec说 Upon successful completion, fopen() shall return a pointer to the object controlling the stream. Otherwise, a null pointer shall be […]

从文本文件PHP或LINUX返回行的范围

我在这里有一个小问题,我需要能够读取一个未知大小的文件,它可能是几百行或更多的日志文件改变所有的时间,取决于我什么时候检查。 我想有一个方法是在PHP或在Linux中,我可以从文件中读取一系列的行。 我不想要读取整个文件到php内存然后删除行,因为该文件可能会更大,然后允许的内存的PHP。 我也希望它使用默认的PHP模块或默认的Linux工具不想安装任何东西,因为它需要是可移植的。 编辑: 对于基于Linux的选项,我希望能够提供更多的一个范围,我可能需要得到几个不同的线路范围,我知道如何做到这一点在PHP中,而不是在Linux和避免阅读过去的行我已经读?