【精通Linux系列】inux核心数据处理查找命令之find,cut,awk, sed命令用法

简介: 【精通Linux系列】inux核心数据处理查找命令之find,cut,awk, sed命令用法

🚀 作者 :“大数据小禅”


🚀 专栏简介 :本专栏主要分享Linux技术,会涉及到常用的Linux命令操作,常用的服务部应用署以及相关运维知识,还有一些Linux系统的深层解析,Linux系列专栏地址,欢迎小伙伴们订阅!


🚀 个人主页 :大数据小禅


🚀 粉丝福利 :加入小禅的大数据社群


🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬


文章目录

linux必须掌握的核心实用命令

linux搜索神器find命令高级用法

基本用法:find +路径 +选项

高级用法

处理海量数据之cut命令

语法:cut [选项]...[file] 如下所示:列是一竖列

处理海量数据之awk命令

语法:

特殊要点与举例说明:

awk的一些特殊要点与举例说明

实战使用awk命令:

-F #指定分割符 跟下面的FS命令相似

BEGIN #在读取所有行内容前就开始执行,一般用来初始化操作

处理海量数据之sed命令

sed语法:sed [选项] [动作] 文件名

d #删除

a #在行的下面插入新的内容

i #在行的上面插入新的内容

c #替换

指定字符串替换

上面的操作只是对输出的命令进行修改。

搜索:在文件中搜索内容(要精准匹配建议使用grep命令)

linux必须掌握的核心实用命令

linux搜索神器find命令高级用法

简介:详细讲解find命令的使用 linux的最底层级别是 / 目录


基本用法:find +路径 +选项


 -type        #根据文件类型 
 find /var/log -type f -name "*.log" ;  find /var/log -type d         (f代表文件,d代表目录)
这样查找出来的是log目录下面所有log后缀结尾的文件     d查找的出来的都是路径加目录的名字例如/var/log/ppp
-name #根据文件名 find /var/log -type f -name "*.log"
-perm #根据文件权限 find /var/log -perm 600 -type f -name "*.log"
-user #根据文件所属主 find /var/log -user XD

image.png

find /var/log -type f -name "*.log" -exec wc -l {} \;
比如上面的find /var/log -type f -name "*.log"
列出了所有以log结尾的文件,如果想要进一步处理啊的话可以使用上面的目录,会对上一条命令找出的文件进行统计行数。
那么有的小白可能会问,目录跟文件什么区别呢?在前面的几章说过,查看属性后-开头的为文件,d开头为目录,如果你用vi去编辑一个目录(d),那么毫无疑问会报错,vi 可编辑的是文件,即以-开头的文件属性。
;              #可以执行多条命令
\              #转义符,转义;使得这条命令结束
{}             #把find命令匹配到的每一次结果传递给{}
-exec          #执行
eg:
find /var/log -type f -name "*.log" -exec cp -a {} /home/test \;   
-a是连带属性一起复制。
上面的cp命令是把log下面列出来的所有.log文件全部复制到 /home/test目录下
-mtime 
#根据文件的变更时间来查找;-n表示更改时间距离现在n天以内;+n表示更改时间距离现在n天以前
eg:
find /var/log -mtime -2 -name "*.log" -exec ls -lrt {} \;    查找两天之内被修改过的文件。
find /var/log -mtime +2 -name "*.log" -exec ls -lrt {} \;    查找出两天以前的被修改过的文件

image.pngimage.pngimage.png

选项:
-d #指定分割符
-f #指定截取区域
-c #以字符为单位进行分割
       注意:不加-d选项,默认为制表符,不是空格,因为cut命令的缺点就是你不能指定" "这样子代表为以空格为分隔符。不加-d即可
eg:
以':'为分隔符,截取出/etc/passwd的第一列跟第三列
cut -d ':' -f 1,3 /etc/passwd
eg:
以':'为分隔符,截取出/etc/passwd的第一列到第三列
cut -d ':' -f 1-3 /etc/passwd   -是一列到第三列
eg:
以':'为分隔符,截取出/etc/passwd的第二列到最后一列
cut -d ':' -f 2- /etc/passwd
eg:
截取/etc/passwd文件从第二个字符到第九个字符   就是比如root:0000000,截取的就是00t:00000
cut -c 2-9 /etc/passwd
eg:
比如领导想叫你截取linux上面所有可登陆普通用户(就是/bin/bashd)
cat /etc/passwd | grep '/bin/bash' | cut -d ':' -f 1 | grep -v root
#前文讲过指明nologin的是不可登录的,指明是/bin/bash是可以登录的

image.pngimage.png

awk '条件1 {执行动作} 条件2 {执行动作} ...' 文件名
或awk [选项] '条件1 {执行动作} 条件2 {执行动作} ...' 文件名

image.png

printf #格式化输出,不会自动换行。
print #打印出内容,默认会自动换行
%s #代表字符串
t #制表符   例如要打印出123456    1(制表符)2(.....)      中间的空格就是制表符
\n #换行符
eg:printf '%s\t%s\t%s\t%s\t%s\t%s\n' 1 2 3 4 5 6
输出 1 2 3 4 5 6 

image.png

df命令
###### 功能说明:文件系统的磁盘使用情况统计。
###### 举 例:df -h(这个参数以G跟M,对磁盘文件进行统计)
du命令:功能说明:统计大小
##### 举 例:du -sh (不讲其他东西的话是统计这个路径下文件的所有总和(M)); du -sm *#统计各个文件的小

image.png

df -h | awk '{print $1}'                      打印出第一列的全部
df -h | awk 'NR==4 {print $1}'                会打印出第四行的,第一列的那个
df -h | awk '(NR>=2 && NR <=5) {print $1}'    打印出第一列的,行数在2到5之间的
df -h | awk '{print $NF}'

image.png

awk -F":" '{print $1}' /etc/passwd

image.pngimage.png

eg:
cat /etc/passwd | awk 'BEGIN {FS=":"} {print $1}'
df -h |grep -v 'Filesystem' | awk '{printf $1} {printf "文件系统使用率:"} {print $5}'
df -h |grep -v 'Filesystem' | awk 'BEGIN {printf "文件系统使用情况:\n \n"} {printf $1}
{printf "文 件系统使用率:"} {print $5}'
BEGIN是对每一行数据进来awk之前进行自定义初始化,上面是先初始化打印出上面的文字

END #结束的时候 执行(与BEGIN相反) grep -v:反向(筛选)选择 (我们不想看到包含repair的行,执行如下的命令:grep -v repair)

image.pngimage.png

df -h |grep -v 'Filesystem' | awk 'BEGIN {printf "文件系统使用情况:\n \n"} {printf $1}
{printf "文件系统使用率:"} {print $5} END {printf "一切正常 \n"}'

处理海量数据之sed命令

简介:介绍sed命令的基本使用


sed的应用场景:主要对数据进行处理(选取,新增,替换,删除,搜索)


sed语法:sed [选项] [动作] 文件名

常见的选项与参数:


-n #把匹配到的行输出打印到屏幕


p #以行为单位进行打印,通常与-n一起使用


image.png

df -h | sed -n '2p'

d #删除

df -h | sed '2d'   删除上面的第二行,删除的只是输出的数据,原本系统的数据是不会删除的。

1

a #在行的下面插入新的内容

df -h | sed '2a 1234567890'   第二行下面

1

i #在行的上面插入新的内容

df -h | sed '2i 1234567890'    第二行上面

1

c #替换

df -h | sed '2c 1234567890'

1

指定字符串替换

s/要被取代的内容/新的字符串/g #指定内容进行替换 (使用率较高)


image.png

image.png

df -h | sed 's/centos-root/Centos7/g'     管道符|  意思是通过管道符传给sed命令,s/加上要匹配的内容再加上/写上你要更该的内容/g结尾,意思是结束命令。

image.png

sed -i 's/Centos7/Centos8/g' df.txt

搜索:在文件中搜索内容(要精准匹配建议使用grep命令)

sed -n '/tmpfs/p' df.txt   要搜索的/  /括号起来后面加个P

image.png

上面的不会精确的匹配,而使用grep命令可以精确的匹配

image.png-e #表示可以执行多条动作 结果是不会输出到屏幕的 加上-I修改掉原文件查看

image.png

sed -e 's/Centos8/Centos7/g' -e 's/tmpfs/TMP/g' df.txt >123.txt
改掉centos8   跟改掉tmpfs

本章的内容到此结束,希望能为您提供帮助。

相关文章
|
9月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
991 1
二、Linux文本处理与文件操作核心命令
|
9月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
607 137
|
9月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1553 58
|
8月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1416 2
|
9月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
878 0
Linux内存问题排查命令详解
|
Linux Go 数据安全/隐私保护
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
291 2
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
1947 8
|
机器学习/深度学习 存储 Linux
linux中强大且常用命令:find、xargs、grep
linux中强大且常用命令:find、xargs、grep
1215 9
|
JSON Java Linux
linux 命令使用总结:vim,nohup,find,df,du,sudo,netstat,ll,curl,lastlog
linux 命令使用总结:vim,nohup,find,df,du,sudo,netstat,ll,curl,lastlog
319 5
|
Unix Linux
Linux命令之find
Linux命令之find
298 2