Linux 基础-文本处理命令
2022/12/10 4:25:06
本文主要是介绍Linux 基础-文本处理命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 概述
- find 文件查找
- grep 文本搜索
- 参考资料
概述
Linux
下使用 Shell 处理文本时最常用的工具有: find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk
。
find 文件查找
man
文档给出的 find
命令的一般形式为:
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [expression]
这对于大部分人来说都太复杂了,[-H] [-L] [-P] [-D debugopts] [-Olevel] 这几个选项并不常用,find
命令的常用形式可以简化为:
$ find [PATH] [option] [action]
1,根据文件或者正则表达式进行匹配
$ find . # 查找当前目录及子目录下所有文件及文件夹 $ find /data -name "*.txt" # 在 /data 目录及子目录下查找以 .txt 结尾的文件名 $ find . \( -name "*.txt" -o -name "*.pdf" \) # 当前目录及子目录下查找所有以 .txt 和 .pdf 结尾的文件 $ find . -maxdepth 1 -type d # 查找当前目录下所有的子目录 $ find . -maxdepth 1 -regex ".*\.txt$" # 基于正则表达式匹配当前目录下的所有以 .txt 结尾的文件 ./multi_classifynet_infer_ret.txt ./cali_left_img.txt ... 省略
2,根据文件类型进行搜索
find . -type 类型参数,f 普通文件,l 符号连接,d 目录,c 字符设备,b 块设备,s 套接字,p Fifo $ find . -maxdepth 1 -type d # 查找当前目录下的所有子目录
3,基于目录深度搜索
$ find . maxdepth 3 -type f # 目录向下最大深度限制 3
4,根据文件时间戳进行搜索find . -type -f 时间戳参数
。与时间有关的选项:共有 -atime
, -ctime
与 -mtime
,以 -mtime
说明
- -mtime n : n 为数字,意义为在 n 天之前的『一天之内』被更改过内容的文件;
- -mtime +n :列出在 n 天之前(不含 n 天本身)被更改过内容的文件名;
- -mtime -n :列出在 n 天之内(含 n 天本身)被更改过内容的文件名。
- -newer file : file 为一个存在的文件,列出比 file 还要新的文件名
$ find /etc -newer /etc/passwd # 寻找 /etc 底下的文件,如果文件日期比 /etc/passwd 新就列出
5,与文件权限及名称有关的参数:
-name filename
:搜寻文件名为filename
的文件。-size [+-]SIZE
:搜寻比 SIZE 还要大(+)或小(-)的文件。 这个 SIZE 的规格有:c
: 代表 byte,k
: 代表 1024 bytes。所以,要找比 50KB还要大的文件,就是-size +50k
。-type TYPE
:搜寻文件的类型为 TYPE 的, 类型主要有:一般正规文件 (f), 装置文件 (b, c), 目录 (d), 连结档 (l), socket (s), 及 FIFO § 等属性。-perm mode
:搜寻文件权限『刚好等于』mode
的文件, 这个 mode 为类似 chmod 的属性值, 举例来说,-rwxr-xr-x
的属性为755
。-perm -mode
:搜寻文件权限『必须要全部囊括 mode 的权限』的文件, 举例来说,我们要搜寻-rwxr--r--
,亦即744
的文件,使用-perm -744
,但是当一个文件的权限为-rwxr-xr-x
,亦即755
时,也会被列出来,因为-rwxr-xr-x
的属性已经包括了-rwxr--r--
的属性了。-perm /mode
:搜寻文件权限『包含任一mode
的权限』的文件, 举例来说,我们搜寻 -rwxr-xr-x ,亦即 -perm /755 时,但一个文件属性为 -rw-------也会被列出来,因为他有-rw....
的属性存在。
范例: ```shell root@17c30d837aba:/data# find . -maxdepth 1 -perm 777 # 查找当前目录下文件权限刚好等于777 的文件 . ./honggaozhang ./demo.sh
grep 文本搜索
grep
支持使用正则表达式搜索文本,并把匹配的行打印出来。grep
命令常见用法,在文件中搜索一个单词,命令会返回一个包含 “match_pattern”
的文本行:
grep match_pattern file_name grep "match_pattern" file_name
常用参数
-o
:只输出匹配的文本行,-v
只输出没有匹配的文本行-c
:统计文件中包含文本的次数: `grep -c “text” filename-n
:打印匹配的行号-i
:搜索时忽略大小写-l
:只打印文件名
$ grep "class" . -R -n # 在多级目录中对文本递归搜索(程序员搜代码的最爱) $ grep -e "class" -e "vitural" file # 匹配多个模式
这篇关于Linux 基础-文本处理命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南