天天看点

Linux日常小技巧文本处理

作者:风趣运维工程狮

Linux操作系统中,awk、grep、sed、cut是常用的文本处理工具,它们可以帮助我们快速地处理文本数据,提高工作效率。前面我已经写过一些示例,今天在介绍详细介绍一下,它们的用法和应用场景。

一、awk

awk是一种强大的文本处理工具,它可以根据指定的规则对文本进行分析和处理。awk的基本语法是:awk 'pattern {action}' file,其中pattern是匹配模式,action是对匹配到的文本执行的操作。

应用场景:

1.统计文件中某一列的总和

示例:假设有一个文件data.txt,内容如下:

Tom 20
Jerry 30
Mike 40           

我们可以使用awk命令来统计第二列的总和,命令如下:

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

输出结果为:90

2.根据条件过滤文本

示例:假设有一个文件data.txt,内容如下:

Tom 20
Jerry 30
Mike 40           

我们可以使用awk命令来过滤出第二列大于等于30的行,命令如下:

awk '$2>=30' data.txt           

输出结果为:

Jerry 30
Mike 40           

3.替换文本中的内容

示例:假设有一个文件data.txt,内容如下:

Tom 20
Jerry 30
Mike 40           

我们可以使用awk命令来将文件中的Tom替换为Tim,命令如下:

awk '{gsub(/Tom/,"Tim")}1' data.txt           

输出结果为:

Tim 20
Jerry 30
Mike 40           

二、grep

grep是一种文本搜索工具,它可以在文件中查找指定的字符串,并输出匹配的行。grep的基本语法是:grep 'pattern' file,其中pattern是匹配模式。

应用场景:

1.查找包含指定字符串的行

示例:假设有一个文件data.txt,内容如下:

Tom 20
Jerry 30
Mike 40           

我们可以使用grep命令来查找包含Tom的行,命令如下:

grep 'Tom' data.txt           

输出结果为:

Tom 20           

2.查找不包含指定字符串的行

示例:假设有一个文件data.txt,内容如下:

Tom 20
Jerry 30
Mike 40           

我们可以使用grep命令来查找不包含Tom的行,命令如下:

grep -v 'Tom' data.txt           

输出结果为:

Jerry 30
Mike 40           

3.查找包含指定字符串的文件

示例:假设有一个目录test,其中包含多个文件,我们可以使用grep命令来查找包含指定字符串的文件,命令如下:

grep -rl 'pattern' test/           

其中,-r表示递归查找,-l表示只输出文件名。

三、sed

sed是一种流编辑器,它可以对文本进行替换、删除、插入等操作。sed的基本语法是:sed 'command' file,其中command是对文本执行的操作。

应用场景:

1.替换文本中的内容

示例:假设有一个文件data.txt,内容如下

Tom 20
Jerry 30
Mike 40           

我们可以使用sed命令来将文件中的Tom替换为Tim,命令如下:

sed 's/Tom/Tim/g' data.txt           

输出结果为:

Tim 20
Jerry 30
Mike 40           

2.删除指定行

示例:假设有一个文件data.txt,内容如下:

Tom 20
Jerry 30
Mike 40           

我们可以使用sed命令来删除第二行,命令如下:

sed '2d' data.txt           

输出结果为:

Tom 20
Mike 40           

3.插入文本

示例:假设有一个文件data.txt,内容如下:

Tom 20
Jerry 30
Mike 40           

我们可以使用sed命令来在第二行后插入一行文本,命令如下:

sed '2a\Hello World' data.txt           

输出结果为:

Tom 20
Jerry 30
Hello World
Mike 40           

四、cut

cut是一种文本处理工具,它可以按列切割文本。cut的基本语法是:cut -d 'delimiter' -f field file,其中delimiter是分隔符,field是要提取的列数。

应用场景:

1.提取指定列

示例:假设有一个文件data.txt,内容如下:

Tom 20
Jerry 30
Mike 40           

我们可以使用cut命令来提取第二列,命令如下:

cut -d ' ' -f 2 data.txt           

输出结果为:

20
30
40           

2.提取多个列

示例:假设有一个文件data.txt,内容如下:

Tom 20 男
Jerry 30 女
Mike 40 男           

我们可以使用cut命令来提取第一列和第三列,命令如下:

cut -d ' ' -f 1,3 data.txt           

输出结果为:

Tom 男
Jerry 女
Mike 男           

3.按字符位置切割文本

示例:假设有一个文件data.txt,内容如下:

Tom 20
Jerry 30
Mike 40           

我们可以使用cut命令来按字符位置切割文本,命令如下:

cut -c 1-3 data.txt           

输出结果为:

Tom
Jer
Mik           

总结:

awk、grep、sed、cut是Linux操作系统中常用的文本处理工具,它们各自有不同的应用场景和用法。awk可以根据指定的规则对文本进行分析和处理,grep可以在文件中查找指定的字符串,sed可以对文本进行替换

Linux日常小技巧文本处理

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