首页 > 系统相关 >Linux基础-文本处理命令

Linux基础-文本处理命令

时间:2022-12-19 18:31:27浏览次数:41  
标签:文件 文本 grep 文本处理 命令 mode Linux txt find

概述

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 (p) 等属性。
  • -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.... 的属性存在。

范例:

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  #  匹配多个模式

参考资料

标签:文件,文本,grep,文本处理,命令,mode,Linux,txt,find
From: https://blog.51cto.com/armcvai/5953499

相关文章

  • linux防火墙
    https://www.cnblogs.com/kqdssheng/p/16405868.htmlhttps://zhuanlan.zhihu.com/p/580178712 1、netfilter、iptables、firewall、ufw之间的关系:netfilter-->iptables......
  • git命令速查表
    1,创建版本库# gitclone<url>              克隆远程版本库# gitinit                    ......
  • linux(Ubuntu)安装QQ2013
    首先简述自己的系统配置:win7+ubuntu12.04linuxQQ有各种版本,这里介绍两种:linuxQQ和wineQQ 1------linuxqq是QQ简化版,功能很少,界面很差,但是安装简单     下载地......
  • linux C的一些笔记
    1.主函数的入参 主函数类似定义intmain();intmain(intargs);intmain(intargs,char*av[]);可以无惨,可以接受参数输入,入参一般为命令行执行参数,比如  传......
  • 定时关机命令
    at22:00Shutdown-s  22:00定时关机Windows定时关机命令shutdown例子:计划任务:设置定时关机:开始,运行,at7:20/every:M,T,W,Th,F,S,Sushu......
  • linux 下使用Git 下载代码、编译VLC 步骤
     本文根据 ​​http://wiki.videolan.org/UnixCompile​​ 编写 第一步:安装Git相关的程序包:%sudoapt-getinstallgitlibtoolbuild-essentialpkg-configauto......
  • Linux ssh密钥自动登录 专题
    在开发中,经常需要从一台主机ssh登陆到另一台主机去,每次都需要输一次login/Password,很繁琐。使用密钥登陆就可以不用输入用户名和密码了实现从主机A免密码登陆到主机B(即把主......
  • Linux磁盘管理
    ​Linux磁盘管理1.写在前面在此强调一个Linux的核心机制就是一切皆文件。I/OPorts即I/O设备地址,用来标识硬件对应的设备地址,来让操作系统以及cpu使用。CPU的核数不......
  • linux 如何查找进程的执行路径
    1.首先查出进程号ps-aux|grep"command"或ps-fx|grep"command"2.得到进程号之后通过pwdx命令获取进程执行路径pwdxpid3.得到进程号之后通过查看/proc获取......
  • Linux 随记
    Linux普通用户上传文件失败给普通用户授予该目录的上传文件权限如果没有root账号,那就只能给普通用户授权某个目录的上传文件权限;给需要上传文件的目录授权,例如,你需要......