加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux文件操作命令--转

发布时间:2021-01-24 15:10:00 所属栏目:Linux 来源:网络整理
导读:引用地址:http://bbsunchen.iteye.com/blog/1010993 想自己一开始处理文件的时候,看文件有多少行,都要写个perl脚本,好不麻烦啊...以此文纪念自己傻逼的科研生活 linux 文本操作命令 1. cat 查看文件中的内容, -n 查看时为每一行加编号; -b 和-n类似,

引用地址: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/aABCD” 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

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读