引用地址:http://bbsunchen.iteye.com/blog/1010993

想自己一开始处理文件的时候,看文件有多少行,都要写个perl脚本,好不麻烦啊...以此文纪念自己傻逼的科研生活

linux 文本操作命令

1. cat 查看文件中的内容, -n 查看时为每一行加编号;

-b 和-n类似,只不过对于空白行不编号;

2. head file 显示文件头的内容,默认显示10行,加 -n 可以显示指定的行数;

3. tail file 显示文件尾的内容,默认显示10行,加 -n 可以显示指定的行数;

tail -n 20 file 显示文件后20行;

tail -f /var/log/messages 实时显示系统的日志信息;

more file 分屏显示文件的内容;

less file 分屏显示文件的内容,在more的基础上可以上下翻页;

4. diff 比较两个文件内容的不同,报告文件的差异;

-b 忽略文件中空格造成的不同 -B 忽略文件中空行造成的不同;

-l 忽略文件中的大小写造成的不同;

例如:diff file1 file2 ; diff -B file1 file2 ;

5. uniq 出除文件中重复的行; uniq file 可以将文件file中相临的重复行去除;

6. wc 用来统计文本中的行数,词数,字数;

-l 用来统计行数;

-w 用来统计词数;

-c 用来统计字数;

wc -l /etc/passwd 可以统计passwd文本中的行数

linux 下 读取某个文件的某一行或者某几行

查看文件song.txt的第190行到196行, 
sed -n '190,196p' song.txt 
如果查看某一行用 
sed -n '190,1p' song.txt即可 
sed -n 'a,bp' song.txt读取自第a行到第b行的数据 
if(a > b ) return 第a行

Find命令和Sed命令详解

命令格式: 
find pathname -options 【-print -exec -ok】 
   pathname  find 命令所查找的目录路径; 
   -print  将匹配的文件输出到标准输出; 
   -exec  对匹配的文件执行该参数所给的shell命令,命令格式给‘command’ {} \;{}和\;之间有空格; 
   -ok  和-exec的作用相同,只是以更安全的模式来执行参数,但执行每个命令前都会给用户提示是否执行; 
   -options 命令参数 
    -name 按照文件名查找文件; 
    -perm 按照文件权限查找文件; 
    -prune 使用该命令使find命令不在当前指定目录中查找,如果同时使用-depth选项,它将被find忽略; 
    -user 按照文件属主查找; 
    -group 按文件属组查找; 
    -mtime -n +n 按照文件的更改时间查找,-n表示文件更改时间距现在n天以内, 
                                         +n表示文件更改时间距现在n天以前; 
    -nogroup 查找无有效所属组的文件,即该文件所属的组不在/etc/group 
    -nouser  查找无有效属主的文件,即该文件所在的主不在/etc/passwd; 
    -newer file1 ! file2  查找更改时间比文件file1新但比文件file2旧的文件; 
  -type 查找某一类型的文件 
    b  块设备文件 
    d  目录 
    c 字符设备文件 
    p 管道文教案 
    l  符号链接文件 
    f 普通文件 
实例:1、使用ls -l命令列出所匹配到的文件 
   #find 。 -type f -exec ls -l {} \; 
    2、删除/logs目录中更改时间在5日以前的文件 
   #find logs -type f -mtime +5 -exec rm {} \; 
   该命令在执行的时候直接删除匹配的文件,安全性不高; 
   #find logs -type f -mtime +5 -exec -ok rm {} \; 
   该命令在执行的时候会提示用户是否要删除该文件,按Y删除文件,N不删除该文件。 
    3、使用find命令查找passed文件中是否包含user1用户; 
   #find /etc -name “passwd*” -exec grep “user1” {} \; 
    4、查找当前目录中文件属主有读写权限,并且属组和其他用户有读权限; 
      #find . -type f -perm 644 -exec ls -l {} \; 
    5、查找系统中所有文件长度为0的不同文件,并列出它的路径; 
      #find / -type f -size 0 -exec ls -l {} \; 
    6、查找当前文件系统中所有目录并排序; 
      # find . -type d |sort 
    7、删除当前目录中访问时间在7天以前的文件,并且含有三个数字后缀的log文件 
      #find . -name “admin.log[0-9][0-9][0-9]” -atime -7 -ok rm {} \; 
二、xargs命令详解 
     在使用find的命令时-exec选项处理匹配文件的信息,但是有些系统文件对exec的命令长度有限制, 
  在运行命令几分钟后,可能出现溢出错误信息,通常的错误信息为“参数列太长”或“参数列溢出”,这时候用sargs 
  就可以解决该问题。 
   find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,这样就可以处理 
  最先获取的一部分文件,然后是剩余的并继续下去。 
实例:1、查找系统中的每个普通文件,然后用xargs命令测试它们分别属于那类文件; 
   #find . -type f -print | xargs file 
    2、把内存信息转储问(core dump),然后把结果保存到/tmp/core.log文件中; 
      #find / -name “core” -print | xargs echo “” >/tmp/core.log 
    3、查找当前目录下所有用户具有读、写和执行权限的文件,并收回其他用户的写权限; 
      #find . -perm -7 -print | xargs chmod o-w; 
    4、搜索当前目录下所有普通文件中包含hostname的字符; 
     #find . -type f -print | xargs grep “hostname”或 
     #find . -name \* -type f -print | xargs grep “hostname” 
    5、查找/apps目录下的文件,但不查找/apps/bin目录下查找; 
     #find /apps -path “/apps/bin” -prune -o -print 
三、sed命令详解 
     sed用法 sed是一个非交互性文本流编辑器,它编辑文件或标准输入导出的文件拷贝。可以在命令行输入sed命令, 
也可以在一个文件中写入命令,在使用sed时,sed并不于初始化文件打叫道,它操作的只是一个拷贝,然后所有的改动 
如果没有重定向到一个文件,将输出到屏幕。因为sed是一个非交互性编辑器,必须通过行号或正规表达式指定要改变 
的文本行。 
1、sed怎么读取数据:sed从文件的一个文本行或从标准输入的几种格式中读取数据,将之拷贝到一个编辑缓冲区,然后 
读命令行或脚本的第一命令,并使用这些命令查找模式或定位行号编辑它,重复此过程命令结束。 
2、调用sed:调用sed有三种方式在命令行键入命令;将sed命令插入脚本文件,然后调用sed;将sed命令插入脚本文件, 
并使sed脚本可执行。 
    2.1sed命令格式: 
   sed [选项] sed命令输入文件         【命令行在使用sed时,实际命令要加单引号。sed也允许加双引号】 
   sed [选项] -f sed脚本文件输入文件 
   sed选项如下: 
    n 不打印  【sed不编辑行到标准输出,缺省为打印所有的行】 
    p 命令可以用来打印编辑行 
    c 下一命令是编辑命令,使用多项编辑时加入此选项,如果只用到一条sed命令,此选项无用,但指定它也没有关系 
    f 如果正在sed脚本文件,使用此选项,此选项通知sed一个脚本文件支持所有的sed命令 
     sed -f myscript.sed  input_file    【myscript.sed即为支持sed命令的文件】 
    2.2保存sed输出 
    由于不接触初始化文件,如果想要保存改动内容,简单地将所有输出重定向到一个文件即可,例如: 
    #sed ’some-sed-commands‘ input-file >myoutfile 
    2.3使用sed在文件中查询文本的方式 
    sed浏览输入文件时,缺省从第一行开始,有两种方式定位文本 
     1.使用行号,可以是一个简单数字或一个行号范围 
     2.使用正规表达式 
    使用sed定位文本的一些方式: 
     x (x为行号,如1 
     x,y (表示行号范围从x到y行,如2,5表示从第2行到第5行 
     /pattern/ (查询包含模式的行。如/disk/或/[a-z]/ 
     /pattern/pattern/ (查询包含两个模式的行,例如/disk/disks/ 
     /pattern/ ,x  (在给定行号上查询包含模式的行。例如/ribbon/,3 
     x,/pattern/    (通过行号或模式查询匹配行。例如3,/vcd/ 
     x,y!查询不包含指定行号x和y的行。例如1,2! 
  2.4基本sed编辑命令 
     p 打印匹配行 
     = 显示文件行号 
     a\  在定位行号后附加新文本信息 
     i\ 在定位行号后插入新文本信息 
        d 删除定位行 
     c\ 用新文本替换定位文本 
     s 使用替换模式替换相应模式 
     r 冲另一个文件中读取文件 
     w 写文本到一个文件 
     q 第一个模式匹配完成后推出或立即推出 
     | 显示与八进制ASCII代码等价的控制字符 
     {} 在定位执行的命令组 
     n 从另一个文件中读文本下一行,并附加在下一行 
     g 将模式2粘贴/pattern n/ 
     y 传送字符 
     n 延续到下一输入行;允许跨行的模式匹配语句。 
   sed识别任何基本正规表达式和模式及其匹配规则,如果要定位一特殊字符,必须使用(\)屏蔽其特殊含义 
  例如:1.打印第2行 
    #sed -n ‘2p’ temp.txt 
     2.打印指定范围,打印1到3行,用逗号分割符号 
    #sed -n ‘1,3p’ temp.txt 
     3.使用行号和模式结合使用,显示temp.txt最后一行中的单词the, 
    # sed -n ‘/the/p’ temp.txt 
     4.使用模式与行号的混合方式剔除第一行,和格式为line_number,/pattern/。都好用来分隔行号 
     与模式开始部分,为了达到预期结果,使用4,/the/。意思只在第四行查询模式the。 
    #sed -n ‘4,/the/p’ temp.txt 
     5.匹配元字符$前,必须使用反斜杠\屏蔽特殊含义。模式为/\$/p 
    #sed -n ‘/\$/p’ temp.txt 
     6.显示整个文件,只需将行号范围设为第一行到最后一行1,$。$意为最后一行。 
    #sed -n ‘1,$P’ temp.txt 
     7.显示任意字符,匹配任意字符,后跟任意字符的0次或多次重复,并以ing结尾 
      #sed -n ‘/.*ing/p’ temp.txt 
     8.打印匹配的的字符并显示该行行号 
      #sed -e ‘/music/=’  temp.txt 
     9.在匹配的字符串后插入新的字符串,使用附加操作即使位置,a\,a\通知sed这是一个附加操作 
      #sed  “/abcd/a\ABCD” temp.txt 
     10.替换文本 替换命令用替换模式指定模式,格式为 
    [address[,address]] s/pattern-to-find/replacerment-pattern/[gpwn] 
    s选项通知sed这是一个替换操作,并查询pattern-to-find,成功后replacement-pattern替换它。 
      g: 缺省情况下只替换第一次出现模式,使用g选项替换全局所有出现模式。 
      p: 缺省sed将所有被替换写入标准输出,加p选项将使-n选项无效; 
      n: 不打印输出结果; 
      w: 文件名使用此选项将输出定向到一个文件 
    例如:替换night为NIGHT,首先查询night,然后用文本NIGHT替换它 
     #sed ‘s/night/NIGHT/’ temp.txt

linux文件操作命令--转的更多相关文章

  1. linux 文件操作命令

    目录操作命令 命令格式 命令 [-选项] [-参数] ls -la /etc 有多个选项时可以合并 ls命令: -a (all) 显示所有文件,包括隐藏文件,那是用.开头的文件 为什么要隐藏(这是个系 ...

  2. LINUX文件操作命令

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  3. linux 文件操作命令 touch、cat、more、less、head、tail

    touch /bin/touch 创建空文件 linux 创建文件可以使用特殊符号,/除外 touch test test1 创建了两个文件touch "test test1" 创 ...

  4. 0020 Linux 文件操作命令

    1. 创建文件 touch 文件名 2. 删除文件 rm 文件名 3. 复制文件 cp 源文件 目录 4.剪切文件 mv 源文件 目标文件 5.重命名文件 mv 源文件名 新文件名 6.改变文件权限 ...

  5. Linux 文件操作命令-Linux基础环境命令学习笔记

    1.文件目录操作 1)路径识别 a.绝对路径,以根目录开始 b.相对路径,以当前目录开始,不需从根目录开始写起 2)命令 man ls 查看ls命令帮助 cd /var/log 切换进入log目录(. ...

  6. 个人常用Linux文件操作命令

    本文只记录个人工作中最常用到的命令.   关机和用户 shutdown -h now 关机 reboot 重启 sync 非正常关机前执行,强制将内存缓冲区中的数据立即写入磁盘中 logout 注销 ...

  7. Linux文件操作命令并举例说明其作用

    ls ,常用于查看当前文件下有工作中需要的文件 cd, 常用于进行切换文件的位置 vim,常用于编辑软件系统相关的配置文件 ps –ef|grep jdk,常用语显示跟jdk有关的进程   |:表示 ...

  8. 【Linux学习】Linux文件系统3—文件操作命令

    Linux文件系统3-文件操作命令 Linux文件操作命令主要有: cd:    改变目录位置 pwd:  显示当前目录的绝对路径 ls:    显示文件名称.属性等 -a 列出全部文件 -l  列出 ...

  9. Linux学习笔记之Linux用户与用户组、文件操作命令、文件权限剖析

    1.用户与用户组 Linux是一个多用户操作系统,通过用户与用户组的概念,可以实现保证安全性和隐私性.任何一个文件都具有User.Group.Others三个权限. 文件拥有者(Linux下所有的东西 ...

随机推荐

  1. Hadoop系列(二)hadoop2.2.0伪分布式安装

    一.环境配置 安装虚拟机vmware,并在该虚拟机机中安装CentOS 6.4: 修改hostname(修改配置文件/etc/sysconfig/network中的HOSTNAME=hadoop),修 ...

  2. php和.net 的加密解密

    PHP版: $key = 335ff'; /* * 加密方法 * @param string $input,待加密的字符串 * @param string $key,加密的密码(只能为8位长) * @ ...

  3. 咏南多层开发框架支持最新的DELPHI 10 SEATTLE

    购买了咏南多层开发框架的老用户如有需要提供免费升级. 中间件

  4. 10 个你需要了解的最佳 javascript 开发实践

    原文:Top 10 “Must Follow” JavaScript Best Practices Javascript 的很多扩展的特性是的它变得更加的犀利, 同时也给予程序员机会创建更漂亮并且更让 ...

  5. JavaServer Faces 2.2 requires Dynamic Web Module 2.5 or newer

    Description Resource Path Location Type JavaServer Faces 2.2 can not be installed : One or more cons ...

  6. zendstudio 出现failed to create the java machine转

    是因为配置java虚拟机内存太小 打开zend for eclipse 10.5时报了个错: failed to create the java virtual machine google了一下,解 ...

  7. How Tomcat Works(十七)

    在前面的文章中,已经学会了如何通过实例化一个连接器和容器来获得一个servlet容器,并将连接器和容器相关联:但在前面的文章中只有一个连接器可用,该连接器服务8080端口上的HTTP请求,无法添加另一 ...

  8. OC:copy 与 retain 的区别

    copy与retain的区别: copy是创建一个新对象,retain是创建一个指针,引用对象计数加1.Copy属性表示两个对象内容相同,新的对象retain为1 ,与旧有对象的引用计数无关,旧有对象 ...

  9. javaScript hook

    今天在网上搜索了不少资料,基本概念如下: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的.当消息到 ...

  10. 基本的TCP编程

    int socket(int family,int type,int protocol); family: AF_INET ipv4协议 AF_INET6 ipv6协议 AF_LOCAL unix域协 ...