Linux日常小技巧文本处理三剑客awk、sed、grep


在日常工作中我们经常在Linux使用中遇到文本处理,这就要用到我们的文本处理三剑客awk、sed、grep 是三个在 Linux 环境下经常使用的命令,主要用于处理和操作文本文件。还可以通过终端命令行或 shell 脚本调用,并且可以很容易地组合起来使用。

三者功能简单介绍如下:


1.使用grep命令查找文件中包含"Hello World"的行

grep "Hello World" text.txt

2.grep命令查找文件中所有不包含"hello"字符串的行,将结果输出到新文件中

grep -v "hello" file.txt > text_file.txt

3使用grep查找多个关键字

grep -E "(pattern1|pattern2)" file.txt

4.sed命令将文件中所有的"hello"字符串替换成"world"

sed 's/hello/world/g' text.txt

5.sed命令给文件的每一行首部加上数字

sed = file.txt | sed 'N;s/
/	/' > text_file.txt

6.sed删除文件中匹配特定模式的行

sed '/pattern/d' file.txt

7.sed命令合并两行到一行,并删除其中的空格

sed 'N;s/
/ /;s/ //g' text.txt

8.使用awk计算文件中的平均数

awk '{sum+=$1} END {print sum/NR}' text.txt

9.使用awk将文件内容反转

awk '{for (i=NF; i>=1; i--) printf("%s ",$i); printf("
")}' text.txt

10.awk命令处理CSV文件

awk -F, '{print $1,$4}' file.csv

11使用awk命令打印文件的第一列

awk '{print $1}' file.txt

12.awk命令计算文件中第二列的总和

awk '{sum += $2} END {print sum}' file.txt

13.使用 grep 和 awk 找出某个文件中以 "error" 开头的行,并统计其中出现次数最多的单词

grep "^error" /date/to/file | awk '{for(i=1;i<=NF;i++) counts[$i]++} END {for(word in counts) print word,counts[word]}' | sort -rn -k 2 | head -n 1

14.备份当前目录下所有 .txt 文件,并在备份完成后删除原始文件

ls *.txt | xargs -I {} sh -c 'cp {} {}.bak && rm {}'

15.列出某个进程的 PID 和内存占用情况

ps aux | grep "java" | awk '{print $2,$4}'

16.修改某个配置文件中特定的行和列

sed -i 'N;s/old_value/text_value/' /date/to/config_file

17.统计某个目录下所有文件的大小并按从大到小排序输出

du -a /date/to/text | sort -rn | awk '{print $2,$1}'

18.列出某个进程占用的 CPU 和内存资源

ps -p  -o %cpu,%mem,cmd

19.查找并删除日志文件最后一行

sed -i '$d' logfile.log

20.查找并删除某个目录下所有空文件

find /date/to/text -type f -empty -delete

整理不易,欢迎大家点赞收藏转发,关注我每天分析运维小知识。

展开阅读全文

页面更新:2024-03-04

标签:文本   组合   字符串   备份   进程   日常   命令   内存   模式   操作   文件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top