如何通过linux终端在文本文件中创建一个名为sth的文件夹?

初学者

我有一个包含文件夹名称的文本文件。我想通过 Ubuntu 终端读取该文本文件的上下文并使用该名称创建一个文件夹(写在 txt 文件中)。我不知道该怎么做,我有制作了一个名为“in.txt”的文件,它的上下文是“name”,我尝试了下面的c代码:

#include <stdio.h>
int main(){
FILE *fopen (const char in.txt, const char r+);
}

我应该在终端写什么?

阿查尔

假设您有一个名为的文本文件in.txt,其中包含

Rambo
Johnny
Jacky
Hulk

接下来,您需要从文件中逐字读取,为此您可以使用fscanf(). 读取单词后,您需要使用该单词名称创建一个文件夹。创建文件夹的命令是mkdir. 接下来,您需要mkdir从文件中执行您使用的文件system()execlp()

这是简单的C程序

int main(){
        FILE *fp = fopen ("in.txt", "r");
        if(fp == NULL) {
                /* write some message that file is not present */
                return 0;
        }
        char buf[100];
        while(fscanf(fp,"%s",buf) > 0) {
                /* buf contains each word of file */
                /* now create that folder use execlp */
                if(fork() ==0 )
                        execlp("/bin/mkdir","mkdir",buf,NULL); /* this will create folder with name available in file */
                else
                        ;
        }
        fclose(fp);
        return 0;
} 

请注意,mkdir如果目录已存在,则失败。创建文件夹gcc -Wall test.c一样编译并执行它./a.out

编辑:相同如果您想使用open()系统调用,则不会有任何系统调用逐字读取,因此您需要进行字符串操作。

int main(int argc, char *argv[]) {
        int inputfd = open("in.txt",O_RDONLY);
        perror("open");
        if (inputfd == -1) {
                exit(EXIT_FAILURE);
        }
        /* first find the size of file */
        int pos = lseek(inputfd,0,2);
        printf("pos = %d \n",pos);
        /* againg make inputfd to point to beginning */
        lseek(inputfd,0,0);
        /*allocate memory equal to size of file, not random 1024 bytes */
        char *buf = malloc(pos);
        read(inputfd,buf,pos);/* read will read whole file data at a time */
        /* you need to find the words from the buf, bcz buf contain whole data not one word */
        char cmd[50];/* buffer to store folder name */
        for(int row = 0,index = 0; buf[row]; row++) {
                if(buf[row]!=' ' && buf[row]!='\n') {
                        cmd[index] = buf[row];
                        index++;
                        continue;
                }
                else {
                        cmd[index] = '\0';
                        index = 0;/* for next word, it should start from cmd[0] */
                        if(fork() == 0 )
                                execlp("/bin/mkdir","mkdir",cmd,NULL);
                        else ;
                }
        }
        close(inputfd);
        return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在文件夹中创建一个文本文件

如何使用文本文件中定义的文件列表将多个文件夹中的文件复制到一个公共文件夹中

如何使用Java从一个文件夹中获取所有文本文件?

在每个子文件夹中将 2 个文本文件合并为一个,并将它们保存在名为 csv 文件的日期和文件所在的文件夹中。

创建一个批处理文件,该文件将文本文件和文件夹中的文件名进行比较,如果匹配,它将文件复制到另一个文件夹

批处理文件可将文件从文本文件中的源移动到另一个文本文件中的多个文件夹

如何合并两个文本文件并创建另一个文本文件并通过Shell脚本加载到HIVE中?

如何从终端中的文本文件中删除最后一个重复单词

Windows GUI工具可将子文件夹中的文本文件合并为一个文件?

循环批处理文件,用于将不同文件夹中的多个文本文件合并到另一个不同文件夹中的一个文本文件

从子文件夹和文件夹中读取文本文件,并在熊猫中为每个文件文本创建一个数据框,以作为一种观察

如何创建多个文件夹并通过从文本文件中读取行来命名它们?

如何从文本文件中给定的路径创建文件夹和文件

读入多个文件夹,并将多个文本文件内容组合到每个文件夹一个文件中-Python

将一个文本文件文件夹与一个单元格中的每个内容合并为一个CSV文件

在python中从两个不同的文件夹创建文本文件

通过在文本文件中搜索 [ ] 创建一个列表

如何仅将文本文件中列出的图像从一个文件夹复制到另一个文件夹而忽略丢失的图像?

如何在 Android Studio 中的 Values 文件夹下创建一个名为“dimens”的子文件夹?

如何在 Android Studio 中的 Values 文件夹下创建一个名为“dimens”的文件夹?

如何从2个单独的文本文件中创建一个组合列表?

将文件从一个文件夹从文本文件的文件名列表移动到另一个文件夹

如何从终端读取文本文件并将输出保存到Java中的另一个文件?

如何创建一个包含文本文件中的键值对的字典

当 Firebase 存储中有一个名为相同的现有文件夹时,如何在 Firebase 中创建一个新文件夹

使用文本文件中的文件列表将文件一个文件夹复制到 Google Drive 中的另一个文件夹

Powershell将文本文件从一个文件夹移动到另一个文件夹

从文本文件中读取行并为每行中的每个名称创建一个文本文件

读取文本文件,仅将那些文件移动到另一个文件夹