2023年7月26日发(作者:)
linux查找⽂件及根据条件搜索⽂件内容linux 查找搜索⽂件及⽂件内容搜索⽂件1.使⽤ find 命令Linux find命令可以⽤不同的搜索标准如名字、类型、所属⼈、⼤⼩等来搜索⽬录树。基本语法如下:find path -option [ -print ] [ -exec -ok command ] {} ;参数说明find 根据下列规则判断 path 和 expression,在命令列上第⼀个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使⽤⽬前路径,如果 expression 是空字串则使⽤ -print 为预设 expression。expression 中可使⽤的选项有⼆三⼗个之多,在此只介绍最常⽤的部份。选项-mount, -xdev-anewer file-amin n-atime n-cnewer file-cmin n-ctime n-empty-gid n , -group name-ipath p, -path p-name name, -iname name-size n-type cdcb描述只检查和指定⽬录在同⼀个⽂件系统下的⽂件,避免列出其它⽂件系统中的⽂件⽐⽂件 file 更晚被读取过的⽂件在过去 n 分钟内被读取过在过去n天内被读取过的⽂件⽐⽂件 file 更新的⽂件在过去 n 分钟内被修改过在过去n天内被修改过的⽂件空的⽂件gid 是 n 或是 group 名称是 name路径名称符合 p 的⽂件,ipath 会忽略⼤⼩写⽂件名称符合 name 的⽂件。iname 会忽略⼤⼩写⽂件⼤⼩ 是 n 单位,b 代表 512 位元组的区块,c 表⽰字元数,k 表⽰ kilo bytes,w 是⼆个位元组。⽂件类型是 c 的⽂件。⽬录字型装置⽂件区块装置⽂件b选项pfl-pid ns区块装置⽂件描述具名贮列⼀般⽂件符号连结process id 是 n 的⽂件socket你可以使⽤ ( ) 将运算式分隔,并使⽤下列运算。exp1 -and exp2! expr-not exprexp1 -or exp2exp1, exp2实例将当前⽬录及其⼦⽬录下所有⽂件后缀为 .c 的⽂件列出来: find . -name "*.c"将当前⽬录及其⼦⽬录中的所有⽂件列出:find . -type f将当前⽬录及其⼦⽬录下所有最近 20 天内更新过的⽂件列出:find . -ctime -20 //20天内find . -ctime +20 //20天前查找 /var/log ⽬录中更改时间在 7 ⽇以前的普通⽂件,并在删除之前询问它们: find /var/log -type f -mtime +7 -ok rm {} ;查找当前⽬录中⽂件属主具有读、写权限,并且⽂件所属组的⽤户和其他⽤户具有读权限的⽂件:find . -type f -perm 644 -exec ls -l {} ;查找系统中所有⽂件长度为 0 的普通⽂件,并列出它们的完整路径:find / -type f -size 0 -exec ls -l {} ;2.使⽤locate命令Linux locate命令⽤于查找符合条件的⽂档,他会去保存⽂档和⽬录名称的数据库内,查找合乎范本样式条件的⽂档或⽬录。基本语法如下:locate [-d ][--help][--version][范本样式...]参数说明参数描述-b参数-c-d-e–basename – 仅匹配路径名的基本名称描述–count – 只输出找到的数量–database DBPATH – 使⽤ DBPATH 指定的数据库,⽽不是默认数据库 /var/lib/mlocate/–existing – 仅打印当前现有⽂件的条⽬– 如果 是 1.则启动安全模式。在安全模式下,使⽤者不会看到权限⽆法看到 的档案。这会始速度减慢,因为 locate 必须⾄实际的档案系统中取得档案的 权限资料。–null – 在输出上带有NUL的单独条⽬–statistics – 不搜索条⽬,打印有关每个数据库的统计信息–quiet – 安静模式,不会显⽰任何错误讯息–nofollow, -H – 检查⽂件存在时不要遵循尾随的符号链接–limit, -n LIMIT – 将输出(或计数)限制为LIMIT个条⽬– ⾄多显⽰ n个输出。–mmap – 被忽略,为了向后兼容–regexp REGEXP – 使⽤基本正则表达式-1-0-S-q-P-l-n-m-r–regex-s-o-h-i-V– 使⽤扩展正则表达式–stdio – 被忽略,为了向后兼容– 指定资料库存的名称。–help – 显⽰帮助–ignore-case – 忽略⼤⼩写–version – 显⽰版本信息实例查找 passwd ⽂件,输⼊以下命令:locate passwd搜索 etc ⽬录下所有以 sh 开头的⽂件 :locate /etc/sh忽略⼤⼩写搜索当前⽤户⽬录下所有以 r 开头的⽂件 :locate -i ~/r附加说明locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。locate 的速度⽐ find 快,它并不是真的查找,⽽是查数据库,⼀般⽂件数据库在 /var/lib/slocate/ 中,所以 locate 的查找并不是实时的,⽽是以数据库的更新为准,⼀般是系统⾃⼰维护,也可以⼿⼯升级数据库 ,命令为:updatedb默认情况下 updatedb 每天执⾏⼀次。3.使⽤slocate命令Linux slocate命令查找⽂件或⽬录。slocate本⾝具有⼀个数据库,⾥⾯存放了系统中⽂件与⽬录的相关信息。语法如下:slocate [-u][--help][--version][-d <⽬录>][查找的⽂件]参数说明参数-d<⽬录>或–database=<⽬录>-u-help–version描述指定数据库所在的⽬录。更新slocate数据库。显⽰帮助显⽰版本信息。实例使⽤指令"slocate"显⽰⽂件名中含有关键字"fdisk"的⽂件路径信息,输⼊如下命令:$ slocate fdisk #显⽰⽂件名中含有fdisk关键字的⽂件的路径信息
执⾏以上命令后,指令执⾏的输出信息如下:$ slocate fdisk #显⽰⽂件名中含有fdisk
关键字的⽂件的路径信息
/root/cfdisk #搜索到的⽂件路径列表
/root/fdisk
/root/sfdisk
/usr/include/grub/ieee1275/ofdisk.h
/usr/share/doc/util-Linux/
/usr/share/doc/util-Linux/
/usr/share/doc/util-Linux/examples/
4.使⽤which命令Linux which命令⽤于查找⽂件。which指令会在环境变量$PATH设置的⽬录⾥查找符合条件的⽂件。基本语法如下:which [⽂件...]参数说明参数-n <⽂件名长度>-p <⽂件名长度>-w-V描述指定⽂件名长度,指定的长度必须⼤于或等于所有⽂件中最长的⽂件名。与-n参数相同,但此处的<⽂件名长度>包括了⽂件的路径。指定输出时栏位的宽度。显⽰版本信息。实例使⽤指令"which"查看指令"bash"的绝对路径,输⼊如下命令:$ which bash上⾯的指令执⾏后,输出信息如下所⽰:/bin/bash5.使⽤whereis命令Linux whereis命令⽤于查找⽂件。该指令会在特定⽬录中查找符合条件的⽂件。这些⽂件应属于原始代码、⼆进制⽂件,或是帮助⽂件。该指令只能⽤于查找⼆进制⽂件、源代码⽂件和man⼿册页,⼀般⽂件的定位需使⽤locate命令。基本语法如下:whereis [-bfmsu][-B <⽬录>...][-M <⽬录>...][-S <⽬录>...][⽂件...]参数说明参数-b-B<⽬录>-f-m-M<⽬录-s-S<⽬录>-u描述只查找⼆进制⽂件。只在设置的⽬录下查找⼆进制⽂件。不显⽰⽂件名前的路径名称。只查找说明⽂件。只在设置的⽬录下查找说明⽂件。只查找原始代码⽂件。只在设置的⽬录下查找原始代码⽂件。查找不包含指定类型的⽂件。实例使⽤指令"whereis"查看指令"bash"的位置,输⼊如下命令:$ whereis bash
上⾯的指令执⾏后,输出信息如下所⽰:bash:/bin/bash/etc//usr/share/man/man1/
注意:以上输出信息从左⾄右分别为查询的程序名、bash路径、bash的man ⼿册页路径。如果⽤户需要单独查询⼆进制⽂件或帮助⽂件,可使⽤如下命令:$ whereis -b bash
$ whereis -m bash输出信息如下:$ whereis -b bash #显⽰bash
命令的⼆进制程序
bash: /bin/bash /etc/ /usr/share/bash # bash命令的⼆进制程序的地址
$ whereis -m bash #显⽰bash
命令的帮助⽂件
bash: /usr/share/man/man1/ #bash命令的帮助⽂件地址
查看或根据条件筛选⽂件内容1.使⽤cat 命令cat(英⽂全拼:concatenate)命令⽤于连接⽂件并打印到标准输出设备上。语法如下:cat [-AbeEnstTuv] [--help] [--version] fileName参数说明参数-n 或 --number描述由 1 开始对所有输出的⾏数编号。-b 或 --number-nonblank参数-s 或 --squeeze-blank-v 或 --show-nonprinting-E 或 --show-ends-T 或 --show-tabs-A, --show-all-e-t和 -n 相似,只不过对于空⽩⾏不编号。描述当遇到有连续两⾏以上的空⽩⾏,就代换为⼀⾏的空⽩⾏。使⽤ ^ 和 M- 符号,除了 LFD 和 TAB 之外。在每⾏结束处显⽰ $。将 TAB 字符显⽰为 ^I。等价于 -vET。等价于"-vE"选项。等价于"-vT"选项。实例查看⽂件内容cat -b textfile把 textfile1 的⽂档内容加上⾏号后输⼊ textfile2 这个⽂档⾥:cat -n textfile1 > textfile2把 textfile1 和 textfile2 的⽂档内容加上⾏号(空⽩⾏不加)之后将内容附加到 textfile3 ⽂档⾥:cat -b textfile1 textfile2 >> textfile3清空 /etc/ ⽂档内容:cat /dev/null > /etc/ 也可以⽤来制作镜像⽂件。例如要制作软盘的镜像⽂件,将软盘放好后输⼊:cat /dev/fd0 > OUTFILE相反的,如果想把 image file 写到软盘,输⼊:cat IMG_FILE > /dev/fd02.使⽤less 命令less 与 more 类似,less 可以随意浏览⽂件,⽀持翻页和搜索,⽀持向上翻页和向下翻页。语法如下:less [参数] ⽂件
参数说明参数-b <缓冲区⼤⼩>-e-f-g-i描述设置缓冲区的⼤⼩当⽂件显⽰结束后,⾃动离开强迫打开特殊⽂件,例如外围设备代号、⽬录和⼆进制⽂件只标志最后搜索的关键词忽略搜索时的⼤⼩写-m参数-o <⽂件名>-Q-s-S-x <数字>/字符串字符串nNbdhQuy空格键回车键[pagedown][pageup]显⽰每⾏的⾏号描述将less 输出的内容在指定⽂件中保存起来不使⽤警告⾳显⽰连续空⾏为⼀⾏⾏过长时间将超出部分舍弃将"tab"键显⽰为规定的数字空格向下搜索"字符串"的功能向上搜索"字符串"的功能重复前⼀个搜索(与 / 或 ? 有关)反向重复前⼀个搜索(与 / 或 ? 有关)向上翻⼀页向后翻半页显⽰帮助界⾯退出less 命令向前滚动半页向前滚动⼀⾏滚动⼀页滚动⼀⾏向下翻动⼀页向上翻动⼀页实例查看⽂件less 查看进程信息并通过less分页显⽰ps -ef |less查看命令历史使⽤记录并通过less分页显⽰# history | less22 scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft23 cd ..24 scp -r web root@192.168.120.203:/opt/25 cd soft26 ls……省略……浏览多个⽂件less 说明:输⼊ :n后,切换到 输⼊ :p 后,切换到附加备注1. 全屏导航ctrl + F - 向前移动⼀屏ctrl + B - 向后移动⼀屏ctrl + D - 向前移动半屏ctrl + U - 向后移动半屏2. 单⾏导航j - 下⼀⾏k - 上⼀⾏3 .其它导航G - 移动到最后⼀⾏g - 移动到第⼀⾏q / ZZ - 退出 less 命令4. 其它有⽤的命令v - 使⽤配置的编辑器编辑当前⽂件h - 显⽰ less 的帮助⽂档&pattern - 仅显⽰匹配模式的⾏,⽽不是整个⽂件5. 标记导航当使⽤ less 查看⼤⽂件时,可以在任何⼀个位置作标记,可以通过命令导航到标有特定标记的⽂本位置:ma - 使⽤ a 标记⽂本的当前位置'a - 导航到标记 a 处3.使⽤more命令more 命令类似 cat ,不过会以⼀页⼀页的形式显⽰,更⽅便使⽤者逐页阅读。⽽最基本的指令就是按空⽩键(space)就往下⼀页显⽰,按 b 键就会往回(back)⼀页显⽰,⽽且还有搜寻字串的功能(与 vi 相似),使⽤中的说明⽂件,请按 h 。语法如下:more [-dlfpcsu] [-num] [+/pattern] [+linenum]
参数说明参数-num描述⼀次显⽰的⾏数提⽰使⽤者,在画⾯下⽅显⽰ [Press space to continue, ‘q’ to quit.] ,如果使⽤者按错键,则会显⽰ [Press ‘h’ forinstructions.] ⽽不是 ‘哔’ 声取消遇见特殊字元 ^L(送纸字元)时会暂停的功能计算⾏数时,以实际上的⾏数,⽽⾮⾃动换⾏过后的⾏数(有些单⾏字数太长的会被扩展为两⾏或两⾏以上)不以卷动的⽅式显⽰每⼀页,⽽是先清除萤幕后再显⽰内容跟 -p 相似,不同的是先显⽰内容再清除其他旧资料当遇到有连续两⾏以上的空⽩⾏,就代换为⼀⾏的空⽩⾏不显⽰下引号 (根据环境变数 TERM 指定的 terminal ⽽有所不同)-d-l-f-p-c-s-u+/pattern参数+numfileNames在每个⽂档显⽰前搜寻该字串(pattern),然后从该字串之后开始显⽰描述从第 num ⾏开始显⽰欲显⽰内容的⽂档,可为复数个数实例逐页显⽰ testfile ⽂档内容,如有连续两⾏以上空⽩⾏则以⼀⾏空⽩⾏显⽰。more -s testfile从第 20 ⾏开始显⽰ testfile 之⽂档内容。more +20 testfile常⽤操作命令Enter 向下n⾏,需要定义。默认为1⾏Ctrl+F 向下滚动⼀屏空格键 向下滚动⼀屏Ctrl+B 返回上⼀屏= 输出当前⾏的⾏号:f 输出⽂件名和当前⾏的⾏号V 调⽤vi编辑器!命令 调⽤Shell,并执⾏命令q 退出more4.使⽤tail 命令tail 命令可⽤于查看⽂件的内容有⼀个常⽤的参数 -f 常⽤于查阅正在改变的⽇志⽂件。tail -f filename 会把 filename ⽂件⾥的最尾部的内容显⽰在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的⽂件内容。语法如下:tail [参数] [⽂件]
参数说明参数-f-q-v-c<数⽬>-n<⾏数>–pid=PID-q, --quiet, --silent-s, --sleep-interval=S描述循环读取不显⽰处理信息显⽰详细的处理信息显⽰的字节数显⽰⽂件的尾部 n ⾏内容与-f合⽤,表⽰在进程ID,PID死掉之后结束从不输出给出⽂件名的⾸部与-f合⽤,表⽰在每次反复的间隔休眠S秒实例要显⽰ ⽂件的最后 10 ⾏,请输⼊以下命令:tail #
默认显⽰最后 10
⾏要跟踪名为 的⽂件的增长情况,请输⼊以下命令:tail -f 此命令显⽰ ⽂件的最后 10 ⾏。当将某些⾏添加⾄ ⽂件时,tail 命令会继续显⽰这些⾏。 显⽰⼀直继续,直到您按下(Ctrl-C)组合键停⽌显⽰。显⽰⽂件 的内容,从第 20 ⾏⾄⽂件末尾:tail -n +20 显⽰⽂件 的最后 10 个字符:tail -c 10 5.使⽤grep 命令grep 命令⽤于查找⽂件⾥符合条件的字符串。grep 指令⽤于查找内容包含指定的范本样式的⽂件,如果发现某⽂件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那⼀列显⽰出来。若不指定任何⽂件名称,或是所给予的⽂件名为 -,则 grep 指令会从标准输⼊设备读取数据。语法如下:grep [-abcEFGhHilLnqrsvVwxy][-A<显⽰⾏数>][-B<显⽰列数>][-C<显⽰列数>][-d<进⾏动作>][-e<范本样式>][-f<范本⽂件>][--help][范本样式][⽂件或⽬录...]参数说明参数-a 或 --text-A<显⽰⾏数> 或 --after-context=<显⽰⾏数>-b 或 --byte-offset-B<显⽰⾏数> 或 --before-context=<显⽰⾏数>-c 或 --count :-C<显⽰⾏数> 或 --context=<显⽰⾏数>或-<显⽰⾏数>-d <动作> 或 --directories=<动作>-e<范本样式> 或 --regexp=<范本样式>-E 或 --extended-regexp描述不要忽略⼆进制的数据。除了显⽰符合范本样式的那⼀列之外,并显⽰该⾏之后的内容。在显⽰符合样式的那⼀⾏之前,标⽰出该⾏第⼀个字符的编号。除了显⽰符合样式的那⼀⾏之外,并显⽰该⾏之前的内容。计算符合样式的列数。除了显⽰符合样式的那⼀⾏之外,并显⽰该⾏之前后的内容。当指定要查找的是⽬录⽽⾮⽂件时,必须使⽤这项参数,否则grep指令将回报信息并停⽌动作。指定字符串做为查找⽂件内容的样式。将样式为延伸的正则表达式来使⽤。指定规则⽂件,其内容含有⼀个或多个规则样式,让grep查找符合规则条件的⽂件内容,格式为每⾏⼀个规则样式。将样式视为固定字符串的列表。将样式视为普通的表⽰法来使⽤。在显⽰符合样式的那⼀⾏之前,不标⽰该⾏所属的⽂件名称。在显⽰符合样式的那⼀⾏之前,表⽰该⾏所属的⽂件名称。忽略字符⼤⼩写的差别。列出⽂件内容符合指定的样式的⽂件名称。列出⽂件内容不符合指定的样式的⽂件名称。在显⽰符合样式的那⼀⾏之前,标⽰出该⾏的列数编号。-f<规则⽂件> 或 --file=<规则⽂件>-F 或 --fixed-regexp-G 或 --basic-regexp-h 或 --no-filename-H 或 --with-filename-i 或 --ignore-case-l 或 --file-with-matches-L 或 --files-without-match-n 或 --line-number-o 或 --only-matching参数-q 或 --quiet或–silent-r 或 --recursive-s 或 --no-messages-v 或 --invert-match-V 或 --version-w 或 --word-regexp-x --line-regexp-y只显⽰匹配PATTERN 部分。描述不显⽰任何信息。此参数的效果和指定"-d recurse"参数相同。不显⽰错误信息。显⽰不包含匹配⽂本的所有⾏。显⽰版本信息。只显⽰全字符合的列。只显⽰全列符合的列。此参数的效果和指定"-i"参数相同。实例在当前⽬录中,查找后缀有 file 字样的⽂件中包含 test 字符串的⽂件,并打印出该字符串的⾏。此时,可以使⽤如下命令:grep test *file
结果如下所⽰:$ grep test test* #查找前缀有“test”的⽂件包含“test”字符串的⽂件
testfile1:This a Linux testfile! #列出testfile1
⽂件中包含test字符的⾏
testfile_2:This is a linux testfile! #列出testfile_2
⽂件中包含test字符的⾏
testfile_2:Linux test #列出testfile_2
⽂件中包含test字符的⾏
以递归的⽅式查找符合条件的⽂件。例如,查找指定⽬录/etc/acpi 及其⼦⽬录(如果存在⼦⽬录的话)下所有⽂件中包含字符串"update"的⽂件,并打印出该字符串所在⾏的内容,使⽤的命令为:grep -r update /etc/acpi
输出结果如下:$ grep -r update /etc/acpi #以递归的⽅式查找“etc/acpi”
#下包含“update”的⽂件
/etc/acpi/ac.d/:# (Things like the slocate updatedb cause a lot of IO.)
Rather than
/etc/acpi/resume.d/:# (Things like the slocate updatedb cause a lot of
IO.) Rather than
/etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update
反向查找。前⾯各个例⼦是查找并打印出符合条件的⾏,通过"-v"参数可以打印出不符合条件⾏的内容。查找⽂件名中包含 test 的⽂件中不包含test 的⾏,此时,使⽤的命令为:grep -v test *test*结果如下所⽰:$ grep-v test* #查找⽂件名中包含test
的⽂件中不包含test
的⾏
testfile1:helLinux!
testfile1:Linis a free Unix-type operating system.
testfile1:Lin
testfile_1:HELLO LINUX!
testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.
testfile_1:THIS IS A LINUX TESTFILE!
testfile_2:HELLO LINUX!
testfile_2:Linux is a free unix-type opterating system. find命令与grep 结合//从根⽬录开始查找所有扩展名为 .log 的⽂本⽂件,并找出包含 "ERROR" 的⾏:$ find / -type f -name "*.log" | xargs grep "ERROR"//从当前⽬录开始查找所有扩展名为 .in 的⽂本⽂件,并找出包含 "thermcontact" 的⾏:find . -name "*.in" | xargs grep "thermcontact"6.使⽤egrep命令egrep命令⽤于在⽂件内查找指定的字符串。egrep执⾏效果与"grep-E"相似,使⽤的语法及参数可参照grep指令,与grep的不同点在于解读字符串的⽅法。egrep是⽤extended regular expression语法来解读的,⽽grep则⽤basic regular expression 语法解读,extended regularexpression⽐basic regular expression的表达更规范。语法如下:egrep [范本模式] [⽂件或⽬录]
参数说明参数[范本模式][⽂件或⽬录]描述查找的字符串规则。查找的⽬标⽂件或⽬录。实例显⽰⽂件中符合条件的字符。例如,查找当前⽬录下所有⽂件中包含字符串"Linux"的⽂件,可以使⽤如下命令:egrep Linux *结果如下所⽰:$ egrep Linux * #查找当前⽬录下包含字符串“Linux”的⽂件
testfile:hello Linux! #以下五⾏为testfile
中包含Linux字符的⾏
testfile:Linux is a free Unix-type operating system.
testfile:This is a Linux testfile!
testfile:Linux
7.使⽤fgrep命令fgrep命令⽤于查找⽂件⾥符合条件的字符串。本指令相当于执⾏ grep 指令加上参数 -F,详见grep命令说明。8.使⽤rgrep命令rgrep命令⽤于递归查找⽂件⾥符合条件的字符串。rgrep指令的功能和grep指令类似,可查找内容包含指定的范本样式的⽂件,如果发现某⽂件的内容符合所指定的范本样式,预设rgrep指令会把含有范本样式的那⼀列显⽰出来。语法如下rgrep [-?BcDFhHilnNrv][-R<范本样式>][-W<列长度>][-x<扩展名>][--help][--version][范本样式][⽂件或⽬录...]参数说明参数-?-B-c描述显⽰范本样式与范例的说明。忽略⼆进制的数据。计算符合范本样式的列数。-D参数-F-h-H-i-l-n-N-r-R<范本样式>-v-W<列长度>-x<扩展名>–help–version排错模式,只列出指令搜寻的⽬录清单,⽽不会读取⽂件内容。描述当遇到符号连接时,rgrep预设是忽略不予处理,加上本参数后,rgrep指令就会读取该连接所指向的原始⽂件的内容。特别将符合范本样式的字符串标⽰出来。只列出符合范本样式的字符串,⽽⾮显⽰整列的内容。忽略字符⼤⼩写的差别。列出⽂件内容符合指定的范本样式的⽂件名称。在显⽰符合坊本样式的那⼀列之前,标⽰出该列的列数编号。不要递归处理。递归处理,将指定⽬录下的所有⽂件及⼦⽬录⼀并处理。此参数的效果和指定"-r"参数类似,但只主⼒符合范本样式⽂件名称的⽂件。反转查找。限制符合范本样式的字符串所在列,必须拥有的字符数。只处理符合指定扩展名的⽂件名称的⽂件。在线帮助。显⽰版本信息。实例在当前⽬录下查找句⼦中包含"Hello"字符串的⽂件,可使⽤如下命令:rgrep Hello *
其搜索结果如下:$ rgrep Hello * #在当前⽬录下查找句⼦中包含“Hello”字符串的⽂件
testfile_1:Hello 95 #testfile_1中包含“Hello”字符串的句⼦
testfile_2:Hello 2005 #testfile_2中包含“Hello”字符串的句⼦
9.使⽤join命令join命令⽤于将两个⽂件中,指定栏位内容相同的⾏连接起来。找出两个⽂件中,指定栏位内容相同的⾏,并加以合并,再输出到标准输出设备。语法如下:join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][⽂件1][⽂件2]参数说明参数-a<1或2>-e<字符串>-i或–igore-case-o<格式>-t<字符>-v<1或2>描述除了显⽰原来的输出内容之外,还显⽰指令⽂件中没有相同栏位的⾏。若[⽂件1]与[⽂件2]中找不到指定的栏位,则在输出中填⼊选项中的字符串。⽐较栏位内容时,忽略⼤⼩写的差异。按照指定的格式来显⽰结果。使⽤栏位的分隔字符。跟-a相同,但是只显⽰⽂件中没有相同栏位的⾏。-1<栏位>参数-2<栏位>–help–version连接[⽂件1]指定的栏位。描述连接[⽂件2]指定的栏位。显⽰帮助。显⽰版本信息。实例连接两个⽂件。为了清楚地了解join命令,⾸先通过cat命令显⽰⽂件testfile_1和 testfile_2 的内容。然后以默认的⽅式⽐较两个⽂件,将两个⽂件中指定字段的内容相同的⾏连接起来,在终端中输⼊命令:join testfile_1 testfile_2
⾸先查看testfile_1、testfile_2 中的⽂件内容:$ cat testfile_1 #testfile_1⽂件中的内容
Hello 95 #例如,本例中第⼀列为姓名,第⼆列为数额
Linux 85
test 30
cmd@hdd-desktop:~$ cat testfile_2 #testfile_2⽂件中的内容
Hello 2005 #例如,本例中第⼀列为姓名,第⼆列为年份
Linux 2009
test 2006
然后使⽤join命令,将两个⽂件连接,结果如下:$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容
Hello 95 2005 #连接后显⽰的内容
Linux 85 2009
test 30 2006
⽂件1与⽂件2的位置对输出到标准输出的结果是有影响的。例如将命令中的两个⽂件互换,即输⼊如下命令:join testfile_2 testfile_1最终在标准输出的输出结果将发⽣变化,如下所⽰:$ join testfile_2 testfile_1 #改变⽂件顺序连接两个⽂件
Hello 2005 95 #连接后显⽰的内容
Linux 2009 85
test 2006 30
10.使⽤look命令look命令⽤于英⽂单字的查询。您仅需给予它欲查询的字⾸字符串,它会显⽰所有开头字符串符合该条件的单字。语法如下:look [-adf][-t<字尾字符串>][字⾸字符串][字典⽂件]参数说明参数-a-d-f-t<字尾字符串>描述使⽤另⼀个字典⽂件web2,该⽂件也位于/usr/dict⽬录下。只对⽐英⽂字母和数字,其余⼀慨忽略不予⽐对。忽略字符⼤⼩写差别。设置字尾字符串。实例为了查找在testfile⽂件中以字母L开头的所有的⾏,可以输⼊如下命令:look L testfile
原⽂件testfile中的内容如下:$ cat testfile #查看testfile
⽂件内容
HELLO LINUX!
Linux is a free unix-type opterating system.
This is a linux testfile!
Linux test
在testfile⽂件中使⽤look命令查找以"L"开头的单词,结果如下:$ look L testfile #查找以“L”开头的单词
Linux is a free unix-type opterating system. #第⼆⾏以“L”开头,列出全句
Linux test #第四⾏以“L”开头,列出全句
11.使⽤od命令od指令会读取所给予的⽂件的内容,并将其内容以⼋进制字码呈现出来。语法如下:od [-abcdfhilovx][-A <字码基数>][-j <字符数⽬>][-N <字符数⽬>][-s <字符串字符数>][-t <输出格式>][-w <每列字符数>][--help][--version][⽂件...]参数说明参数-a-A<字码基数>-b-c-d-f-h-i-j<字符数⽬>或–skip-bytes=<字符数⽬>-l-N<字符数⽬>或–read-bytes=<字符数⽬>-o-s<字符串字符数>或–strings=<字符串字符数>-t<输出格式>或–format=<输出格式>-v或–output-duplicates-w<每列字符数>或–width=<每列字符数>-x–help描述此参数的效果和同时指定"-ta"参数相同。选择要以何种基数计算字码。此参数的效果和同时指定"-toC"参数相同。此参数的效果和同时指定"-tC"参数相同。此参数的效果和同时指定"-tu2"参数相同。此参数的效果和同时指定"-tfF"参数相同。此参数的效果和同时指定"-tx2"参数相同。此参数的效果和同时指定"-td2"参数相同。略过设置的字符数⽬。此参数的效果和同时指定"-td4"参数相同。到设置的字符数⽬为⽌。此参数的效果和同时指定"-to2"参数相同。只显⽰符合指定的字符数⽬的字符串。设置输出格式。输出时不省略重复的数据。设置每列的最⼤字符数。此参数的效果和同时指定"-h"参数相同。在线帮助。–version参数显⽰版本信息。描述实例创建 tmp ⽂件:$ echo abcdef g > tmp$ cat tmpabcdef g使⽤ od 命令:$ od -b tmp0000000 141 142 143 144 145 146 040 147 使⽤单字节⼋进制解释进⾏输出,注意左侧的默认地址格式为⼋字节:$ od -c tmp0000000 a b c d e f g n0000011使⽤ASCII码进⾏输出,注意其中包括转义字符$ od -t d1 tmp0000000 97 98 99 100 101 102 32 103 100000011使⽤单字节⼗进制进⾏解释$ od -A d -c tmp0000000 a b c d e f g n000000912.使⽤gitview命令gitview命令⽤于观看⽂件的内容,它会同时显⽰⼗六进制和ASCII格式的字码。语法如下:gitview [-bchilv][⽂件]参数说明参数-b-c-h-i-l-v描述单⾊模式,不使⽤ANSI控制码显⽰彩⾊。彩⾊模式,使⽤ANSI控制码显⽰⾊彩。在线帮助。显⽰存放gitview程序的所在位置。不使⽤先前的显⽰字符。显⽰版本信息。实例-使⽤指令gitview以彩⾊模式观看⽂件"/home/ rootlocal/"中的内容,输⼊如下命令:$ gitview -c /home/rootlocal/ #使⽤gitview指令观看指定⽂件内容
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690362069a337921.html
评论列表(0条)