精华内容
下载资源
问答
  • linux读取txt文件内容
    2021-05-08 23:24:26

    今天写了一个简单的 Linux Shell 逐行读取文件(txt,sh,csv....)的程序,记录一下,有需要的朋友可以参考。

    #!/bin/bash

    # Only 1 parameter !

    if [ $# != 1 ];then

    echo " Usage: .\read.sh filename!";

    exit

    fi

    # check the file !

    if ! [ -f $1 ];then

    echo "file does not exist!"

    exit

    elif ! [ -r $1 ];then

    echo "file can not be read !"

    exit

    fi

    # PRESS ANY KEY TO CONTITUE !

    read -p "begin to read $1 "

    # set IFS="\n" , read $1 file per line !

    IFS="

    "

    # i is the line number

    i=1

    for line in `cat $1`

    do

    echo line $i:$line

    let "i=$i+1"

    done

    echo "Finished reading file by line ! "

    程序虽然简单,但是细节问题容易出错,从而浪费宝贵的时间~

    PS : 读取到每一行的数据之后,可以配合使用 cut 命令解析这一行的数据~

    更多相关内容
  • Linux读写txt文件

    2022-06-24 15:09:44
    Linux操作文档

    打开文件

    在这里插入图片描述cd指令跳转到相对文件夹
    在这里插入图片描述
    find指令查找对应文件,不清楚全名时使用
    sudo find / -name "us*"

    您可以使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型 FILE 的一个对象,类型 FILE 包含了所有用来控制流的必要的信息。下面是这个函数调用的原型:

    FILE *fopen( const char *filename, const char *mode );
    在这里,filename 是字符串,用来命名文件,访问模式 mode 的值可以是下列值中的一个:
    模式 描述
    r 打开一个已有的文本文件,允许读取文件。
    w 打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。如果文件存在,则该会被截断为零长度,重新写入。
    a 打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。
    r+ 打开一个文本文件,允许读写文件。
    w+ 打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度,如果文件不存在,则会创建一个新文件。
    a+ 打开一个文本文件,允许读写文件。如果文件不存在,则会创建一个新文件。读取会从文件的开头开始,写入则只能是追加模式。
    如果处理的是二进制文件,则需使用下面的访问模式来取代上面的访问模式:

    “rb”, “wb”, “ab”, “rb+”, “r+b”, “wb+”, “w+b”, “ab+”, “a+b”

    关闭文件

    为了关闭文件,请使用 fclose( ) 函数。函数的原型如下:

    int fclose( FILE *fp );
    如果成功关闭文件,fclose( ) 函数返回零,如果关闭文件时发生错误,函数返回 EOF。这个函数实际上,会清空缓冲区中的数据,关闭文件,并释放用于该文件的所有内存。EOF 是一个定义在头文件 stdio.h 中的常量。

    C 标准库提供了各种函数来按字符或者以固定长度字符串的形式读写文件。

    写入文件

    下面是把字符写入到流中的最简单的函数:

    int fputc( int c, FILE *fp );
    函数 fputc() 把参数 c 的字符值写入到 fp 所指向的输出流中。如果写入成功,它会返回写入的字符,如果发生错误,则会返回 EOF。您可以使用下面的函数来把一个以 null 结尾的字符串写入到流中:

    int fputs( const char *s, FILE *fp );
    函数 fputs() 把字符串 s 写入到 fp 所指向的输出流中。如果写入成功,它会返回一个非负值,如果发生错误,则会返回 EOF。您也可以使用 int fprintf(FILE *fp,const char *format, …) 函数把一个字符串写入到文件中。尝试下面的实例:

    注意:请确保您有可用的 tmp 目录,如果不存在该目录,则需要在您的计算机上先创建该目录。

    /tmp 一般是 Linux 系统上的临时目录,如果你在 Windows 系统上运行,则需要修改为本地环境中已存在的目录,例如: C:\tmp、D:\tmp等。

    写入文件

    下面是把字符写入到流中的最简单的函数:

    int fputc( int c, FILE *fp );
    函数 fputc() 把参数 c 的字符值写入到 fp 所指向的输出流中。如果写入成功,它会返回写入的字符,如果发生错误,则会返回 EOF。您可以使用下面的函数来把一个以 null 结尾的字符串写入到流中:

    int fputs( const char *s, FILE *fp );
    函数 fputs() 把字符串 s 写入到 fp 所指向的输出流中。如果写入成功,它会返回一个非负值,如果发生错误,则会返回 EOF。您也可以使用 int fprintf(FILE *fp,const char *format, …) 函数把一个字符串写入到文件中。尝试下面的实例:

    注意:请确保您有可用的 tmp 目录,如果不存在该目录,则需要在您的计算机上先创建该目录。

    /tmp 一般是 Linux 系统上的临时目录,如果你在 Windows 系统上运行,则需要修改为本地环境中已存在的目录,例如: C:\tmp、D:\tmp等。

    测试代码

    新建一个txt文件:cat > test.txt

    读取TXT

    在这里插入图片描述

       read = fopen("/home/yan/openrun/opentest/num.txt","r+");
       fscanf(read,"%s",buff);//将数据读取出来
       printf("num=0x%x\n",buff[0]);
       fclose(read);
    
       if(buff[0]==0x33)
       {
       read = fopen("/home/yan/openrun/opentest/num.txt","w+");
    
       fwrite(k_buff,sizeof(k_buff),1,read);//写入数据
       printf("num=0x%x\n",buff[0]);
       printf("write\n");
       fclose(read);
       }
    

    shell脚本读取txt

    echo "3" > a.txt
    sudo chmod 777 a.txt
    true > a.txt
    
    #!/bin/bash
    
    echo "123456a#" | sudo -s cat a.txt | while read line
    do
         echo $line
    	 
    	 if [ "$line"x == "3"x ]
    	 then
    	   modbule_name="数据是3,第1次"
    	   echo "123456a#" | sudo -s true > /home/xb/a.txt
    	   echo "123456a#" | sudo -s echo "2" >> /home/xb/a.txt
    	   echo "写入2"
    	   
    	 elif [ "$line"x == "2"x ]
    	 then
    	   modbule_name="数据是2,第2次"
    	   echo "123456a#" | sudo -s true > /home/xb/a.txt
    	   echo "123456a#" | sudo -s echo "1" >> /home/xb/a.txt
    	   echo "写入1"
    	   
    	 elif [ "$line"x == "1"x ]
    	 then
    	   modbule_name="数据是1,第3次"
    	   echo "123456a#" | sudo -s true > /home/xb/a.txt
    	   echo "123456a#" | sudo -s echo "0" > /home/xb/a.txt
    	   echo "写入0"
         fi	 
    	 echo $modbule_name
    done
    exit 0
    
    展开全文
  • 使用Linux,如果不使用命令,那是没有灵魂的。在上一篇中Linux终端命令入坑必备知识与技巧,小编介绍了终端的基本知识。那么本文,就来介绍关于文件操作的基本命令。1 如何查看文件元数据属性(大小,权限等)?使用ls...

    d30c03013dd7b8eacf3013744420b200.png

    使用Linux,如果不使用命令,那是没有灵魂的。 在上一篇中  Linux终端命令入坑必备知识与技巧  , 小编介绍了终端的基本知识。 那么本文,就来介绍关于文件操作的基本命令。 1 如何查看文件元数据属性(大小,权限等)? 使用ls命令带-l选项,就可以在终端输出中显示文件元数据属性。 例如:

    a0e3248e3094d5caadf861ca6e2197d1.png

    输出中的每行都包含与当前目录中存在的文件或子目录相关的元数据信息。 此信息可以分为以下七个部分: 文件所有权 + 硬连接个数 + 文件所有者 + 文件所在组 + 文件大小+ 时间 + 名称 17955d5715eb75bd875680ed64237868.png 在文件所有权中: 第一个字符表示文件类型。 例如,在上面显示的行中,d表示这是一个目录。 其他值可以是: -: 普通文件,s: 套接字文件,l: 链接文件,以及更多。 接下来的 9 个字符表示权限 r: 读取, w: 写入, x: 执行 -:无权限 第一组三个字符表示所有者的权限,后三个字符表示用户所在组的权限,最后三个字符表示授予的其他人的权限,既不是所有者,也不是文件所属的组部分。 在上面显示的示例中,所有者具有读取、写入和执行权限,而组以及其他组都只有读取和执行权限。 提示: 使用-h命令行选项以及-l以人类可读格式显示文件大小,如下图,work目录的大小的大小就直观的以4.0显示出来了。 e0c60ba57c7e144c306332368cb20aba.png 2 如何更改文件的权限? 使用chmod命令就可以更改文件权限。 有两种方法可以使用此命令。 第一种方法(也称为字母方法)使用+,-, = 符号来添加、删除和分配权限。 字母a、o、u和g分别代表所有(all)、其他人(others)、所有者(user)和组(group)。 例如:
    chmod u=rwx test.txt
    该命令将读取、写入和执行权限分配给文件所有者。 同样,chmod o+w test.txt命令为其他用户添加了写入权限 chmod g-r test.txt, 从文件所属的组中删除读取权限 chmod a+x 给所有用户添加执行权限。 指定a不是强制性的,这意味着设置+x或-r等权限而不指定所有者、组或其他权限会自动将其应用于所有权限。 第二种方法是数字方法,它使用4、2和1 代替r、w和x。 这些值以 3 组相加,为我们提供一个表示权限的三位数字。 例如:
    chmod 761 test.txt
    该命令分别向所有者、组和其他权限授予 rwx、rw 和 r 权限。 此处7表示对应于 r、w 和 x 的数字的总和。 同样,6表示对应于 r 和 w 的数字的总和,而1表示 x。 3 如何更改文件的时间戳? 使用touch命令更改文件时间戳。 与文件关联的时间戳有三种类型: 访问时间、修改时间和更改时间。 虽然前两个是自解释的,但第三个表示inode信息或与文件相关的元数据上次更改的时间。 使用stat命令显示这些时间戳: c25befd7bf913a6bfb5153a46f725a6c.png 要将文件访问时间更改为当前时间,请使用带有-a选项的touch命令: touch -某个文件。 同样,-m选项将文件修改时间更改为当前时间。 要将文件时间戳更改为当前时间以外的时间,请使用-t命令行选项。 例如,
    touch-t 201912120900.01 documents.tar
    将documetns.tar的访问时间戳更改为2019/12/12 09: 00: 01。 您还可以以人类可读的形式传递特定的日期和时间。 为此,请使用-d命令行选项。 下面是一些示例:

    273360484394afadcfc93f638d417dcb.png

    4 如何判断一个文件的文件类型? 使用file命令确定文件类型。 如下例所示,该命令需要文件名作为参数。 您还可以使用通配符 + 代替文件名来显示当前目录中每个文件的文件类型: file * 2b4d25962f5c615d7fccdc71d67fe8ce.png 5 下载了软件,但是为什么无法执行? 在 Linux(和其他 Unix 系统中),文件是否可执行仅取决于其权限,而不是其扩展名或内容。下载文件时,其原始权限是不知道的,因此会获得一组由umask确定的默认权限。 如果用户确实打算执行下载的文件,他们必须使用上面解释的chmod命令显式授予该文件可执行权限。 手动授予权限还有助于防止病毒、蠕虫等在您不知情的情况下感染系统。 6 如何显示文件和目录的磁盘占用情况? 使用du命令显示文件和目录的磁盘使用情况。 下面是一个示例: 注意- -h命令行选项用于以人类可读格式生成大小。

    e6e139e461bfb7d6671ff52ec0e4486c.png

    这里需要注意的一点很重要,du命令输出文件的驻留大小,这可能与ls-l命令显示的实际大小不同。 这就类似于Windows下文件的大小,和占有空间 c75eaaeec60e6d03e3bc1a0e162cf230.png 要显示目录的组合大小及其所有子目录,请使用-s选项,而-S可用于显示单独的大小。 要显示包含特定文件或目录的文件系统上可用的磁盘空间量,请使用df命令。 7 如何比较两个文件? 使用diff命令可以比较两个文件。 该命令检查两个文件,并生成特定格式的输出,以便了解文件匹配所需的更改。 该命令需要两个文件名作为参数,如下例所示。 使用diff命令比较这些文件:

    47fb05ef77a2f7c5ff9681c94707588d.png

    上面所示的输出,18,19c18,20意味着两个比较的文件在18,19行被修改了, 并且还增加了第20行。 同理 45,46c46就表示右边的文件修改了45和46行,并合并成了一个新行45。 第一个文件的内容用符号标记。 8 如何同时保存和查看命令的输出? 使用tee命令同时将任何其他命令的输出写入标准输出以及一个或多个文件。 例如,ls = t t ls-dump命令在控制台上显示ls命令的输出,并将输出存储在文件ls 转储中。 虽然Tee命令主要用于同时捕获和分析日志,但它也可用于加快工作流。 例如,
    echo "Linux command line" | tee file1 > file2
    命令一次性将字符串写入两个文件。 9 如何压缩和解压文件? 在Linux上工作需要你处理像.tar,.tar.gz,.bz2等档案文件。 要创建和解压缩这些存档文件,可以使用tar命令。 例如:
    tar-cvf test.tar test/
    该命令压缩tset文件夹并创建名为.tar的.tar存档。 -c命令行选项告诉tar命令创建存档。 -v显示添加到 tarball 的文件。 -f指定文件名。 要解压缩上面创建的.tar存档,请使用tar -xvf test.tar命令。 -x命令行选项向命令发出信号以解压存档。 此命令解压当前目录中的文件。 使用-C选项指定其他目标目录。 要创建.tar.gz和.tar.bz2存档,请分别添加一个额外的-z和-j命令行选项。 解压缩这些存档的命令与用于.tar文件的命令相同。 使用-t命令行选项(以及v和f),以防您只想列出存档的内容。

    要处理.zip文件,请使用zip命令。

    总结

    上文中并没有提到怎么通过终端去编辑文档文件,文档编辑可以用哪些命令呢?

    本文提到的每个命令都比提到的功能的要强大的多,学习linux的命令除了以需求为驱动外,要想进一步掌握了解命令,则可使用 man命令来学习。 

    对于linux有哪些文件操作的命名,欢迎在下方留言。

    15568f2063b7c6b1e49c2e587eabf016.png 848f6a8c6f932a94d0785edaa50eb9e6.gif
    展开全文
  • Linux读取文件内容命令

    千次阅读 2022-04-16 16:46:58
    cat命令用于查看纯文本文件(常用于内容较少的),可以理解猫,瞄一眼文件内容,其单词是concatenate,指的是可以链接多个文件且打印到屏幕,或是重定向到文件中 cat功能 功能 说明 查看文件内容 ...

    cat命令

    cat命令用于查看纯文本文件(常用于内容较少的),可以理解猫,瞄一眼文件内容,其单词是concatenate,指的是可以链接多个文件且打印到屏幕,或是重定向到文件中

    cat功能

    功能

    说明
    查看文件内容cat  file.txt
    多个文件合并cat  file.txt  file1.txt > file2.txt
    非交互式编辑或追加内容

    cat >> file.txt<<EOF

    欢迎你

    EOF

    清空文件内容cat /dev/null>file.txt 【/dev/null是linux系统的黑洞文件】

    参数

    用法:cat  [选项]  [文件]...

    将[文件]或标准输入组个输出到标准输出

    清空文件内容,慎用

    >  文件名

    -A        --show-all        等价于        -vET

    -b        --number-nonblank        对非空输出行编号

    -e        等价于 -vE

    -E        --show-ends        在每行结束处显示$

    -n        --number        对输出的所有行编号

    -s        --squeeze-blank        不输出多行空行

    -t        与 -vT等价

    -T        --show-tabs        将跳格字符显示为  ^r

    -u        (被忽略)

    -v        --show-nonprinting        使用^和M-引用,除了LFD和TAB之外

    --help        显示此帮助信息并退出

    --version        输出版本信息并退出

    如果[文件]缺省,或者[文件]为 -,则读取标准输入

    案例

    1.查看文本内容,以及功能参数

    cat        test.txt

    2.对非空行显示行号

    cat    -b    test.txt

    3.对所有行显示行号

    cat     -n      test.txt

    4.在每行结尾加上$符

    cat -n -E  test.txt

    5.减少空行数量,多个空行,减为1个

    cat  -s  test.txt

     cat命令合并多个文件

    合并多个文件内容,写入到新的文件中

    cat        test.txt   test1.txt  >  ./test3.txt

     cat非交互式的写入文件内容信息

     cat清空文件的用法

    1.直接清空文件,留下一个空行

    echo   >  test.txt

    2.直接清空文件

    >  test.txt

    3.利用cat读取一个黑洞文件,然后清空其他文本

    /dev/null        #空设备,黑洞文件

    cat  /dev/null    >   test.txt

     tac命令

    与cat命令查看文件结果相反

    管道符

     管道符用法

    1.对字符串进行二次过滤

    查看gushi.txt文本内容,且对内容进行二次过滤,找出有关know me的行

    cat        gushi.txt        |        grep   "know me"

     grep命令

    过滤字符串信息

    more命令  less命令

    分屏查看文本内容的命令

    语法:

    more        文件名        #分屏显示文件内容

    按下enter回车使下一行

    空格是向下滚动一个屏大小

    =号是显示当前行号

    按下q 是退出more

     head和tail命令

    head命令用于查看文件开头的n行

    head        -5        文件名        #查看前5行

    head        文件名        #默认显示10行

    -c  参数,按照字符数量,显示字符数

    head     -c      5        文件名          #输出文件中的5个字符

    tail默认从后向前看10行,也可以指定行数

    tail        文件名        #显示默认后10行

    tail        -2        文件名        #显示后2行

    -f        实时刷新文件内容变化

    tail         -f         test.txt

    -F        不断的打开文件

    展开全文
  • LINUX 读取文件内容命令

    万次阅读 2019-04-15 15:18:10
  • 一、基于ANSI标准的I/O函数实现文件读写在ANSI标准下,进行文件读写操作会在用户空间中自动为正在使用的文件开开辟内存缓冲区。如下图所示: ANSI标准的C库函数建立在底层的系统调用之上,即C函数库额文件访问...
  • perl读写文件.txt

    2019-05-14 19:31:00
    linux上perl对文件读写的几种方法 整体读入 逐行读入 写入
  • linux常用的读取文件内容指令

    千次阅读 2021-05-12 12:56:31
    linux常用于读取文件内容指令主要有以下七种:cat,tac,nl,more,less,head,tailcat 文件名 –将文件内容显示在屏幕上cat -n 文件名 –将文件内容显示在屏幕上,并显示行号cat -b 文件名 –将文件内容显示在屏幕上,并...
  • 源码 test.cpp #include<string> #include<iostream> #include <stdlib.h> #include <stdio.h> using namespace std; int main() { FILE *fd;... if ((fd = fopen("data.txt
  • 开发linux程序经常要用到读写配置文件,前段时间开发需要,折腾了好一段时间。这里特做了总结。希望能帮到各位开发中的朋友。 1.linux下INI配置文件读写操作库 =================================================...
  • 负责文件读写,主要有如下三种函数#include ofstream //文件写操作 内存写入存储设备ifstream //文件读操作,存储设备读区到内存中fstream //读写操作,对打开的文件可进行读写操作这方面的介绍很多,具体也可参考...
  • 最近初次接触Linux这么高端的东西,有种进城的感觉。进了linux,发现城里人说话做事的方式都很不一样。...再就是文件组织形式的不同,linux文件组织方式是用户目录式。进入linux我首先学了关于c语言...
  • 1.在/home下使用open()函数打开一个名为“姓名.txt”的文件,权限为666,如果该文件不存在,则创建此文件,并向其中写入字符串“hello 学号,this is world”,然后把写入的内容读取出来并在终端上显示输出。...
  • 如何在Shell脚本中逐行读取文件

    千次阅读 2021-05-12 12:57:47
    在这里,我们学习Shell脚本中的3种方法来...为了演示,在此创建一个名为“ mycontent.txt”的文本文件,文件内容在下面:[root@localhost ~]# cat mycontent.txtThis is a sample fileWe are going through contents...
  • 2.在/home下使用open()...LINUX读取写入文件并打印出来(实例用的.txt) 已经建好的.txt 写代码: #include<sys/types.h> #include<sys/stat.h> #include <stdio.h> #include <unistd.h> #inc
  • C++在linux读写文件

    千次阅读 2021-10-18 14:02:33
    文章目录一、简介1.1 文件类型1.2 C++中操作文件的三大类二、linux中写文件2.1 步骤2.2 文件打开方式2.3 linux中写文件DEMO三、linux中读文件3.1 步骤3.2 读取文件的方式3.3 linux中写文件demo 一、简介 程序运行时...
  • 本文使用 Zhihu On VSCode 创作并发布当我们在进行调试的时候,经常需要查看各种日志文件,这时候熟悉linux下一些常用的查看文件命令是非常重要的,本篇文章专门整理了这些常用的命令,主要有下面几个。...
  • /** * * java 远程读取linux文件 * @author zhaochong */ public class ShellUtil { private static JSch jsch; private static Session session; /**配置连接 * @param user * @param passwd * @param host * @...
  • linux C++ 文本文件创建写入以及读取

    热门讨论 2012-06-06 23:24:29
    linux C++ 文本文件创建写入以及读取
  • linux查看目录下所有文件名, 文件名不包含扩展名,全路径名等; linux for 循环的使用等
  • 原因:编码方式不同 解决方法一: 在Linux中修改cfg配置文件,新建一个cfg文本文件,随意输入几个字符,保存文件(先保存成UTF-8文件,再粘贴才有用),再复制粘贴到新cfg中。 file 文件名,来查看文件的编码方式。 ...
  • 使用C++分别在linux和windows系统上读某路径下的文件和文件夹列表,自己写的仅供参考
  • C语言 如何读取一个已知txt文件内容并输出关注:210答案:4mip版解决时间 2021-01-28 12:35提问者妳青噝侞烏2021-01-28 01:18txt内是字符串,但长度未知,例如:hello,要求把所有字符都提取出来,并输出。...
  • Linux下的文本读写操作的源代码,最原始的程序,修改、添加就会变成你自己的特色。
  • //filepath读取TXT件的路径 filepath写入TXT文件的路径 public static void readTxtFile(String filePath, String filepath2)throws IOException, ParseException { File file = new File(filePath);// 文件路径 ...
  • 使用python语句,读取Linux远端服务器上的文件打印到控制台的代码实现:下载包:paramiko import paramiko#服务器信息,主机名(IP地址)、端口号、用户名及密码hostname = ""port = 22username = ""password = "...
  • Linux下遍历读取文件内容

    千次阅读 2022-01-28 15:16:29
    通过while循环读取 $ cat test.txt apple 1 banana 2 chery 3 $ cat myread.sh while read line do echo $line done < test.txt $ sh myread.sh apple 1 banana 2 chery 3 或者直接在命令行执行while命令...
  • Linux读取文件内容存放到数组中(C语言实现) 具体使用函数FILE *fopen(const char *path,const char *mode); 其实用方式为:文件指针名=fopen(文件名,使用文件方式); 例如: FILE *fp; fp=fopen("file a","r");...
  • 发展:人类生气了,跟我扯了一堆 dos 还有什么玩意儿,在我第二次还说那个是dos界面以后:(后续:人类要我写 批处理bat 还有linux bash 脚本去感受下lz我写得好烦,大半夜还不会写,开始以为bat容易,后来呵呵呵呵,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 178,648
精华内容 71,459
关键字:

linux读取txt文件内容