grep命令是一个十分强悍的文本搜索工具,可以搜索文本文件中的特定文本内容并过滤输出。它支持单个文件搜索,也支持多个文件搜索。grep命令有很多选项和参数,可以帮助我们进行精确的搜索。下边是grep命令的详尽介绍:
grep命令的基本句型格式为:
grep [选项] 搜索内容 文件名
其中,选项是用于设置搜索规则的参数,搜索内容是要搜索的文本,文件名是要进行搜索的文件名。若果没有指定文件名,则默认从标准输入中读取数据。
以下是常见的选项:
以下是常见的示例:
搜索单个文件中的文本
假如要在一个文件中查找指定的文本,可以使用grep命令的基本句型格式。
比如,在文件my_file.txt中查找包含"hello"的行:
grep "hello" my_file.txt
搜索多个文件中的文本
grep命令支持在多个文件中搜索指定的文本。假如要在多个文件中搜索,只须要即将搜索的文件名作为参数提供即可。
比如,在当前目录下所有的txt文件中搜索"hello":
grep "hello" *.txt
忽视大小写进行搜索
使用-i选项可以忽视搜索时大小写的不同。比如,在文件my_file.txt中查找"hello"和"Hello"就会被搜索到。
grep -i "hello" my_file.txt
显示匹配文本所在的行号
使用-n选项可以让grep命令显示匹配文本所在的行号。比如linux检索文件内容,在文件my_file.txt中查找"hello",并在输出中显示行号:
grep -n "hello" my_file.txt
显示不包含搜索内容的行
通过-v选项,可以让grep命令只输出不包含搜索内容的行。比如linux检索文件内容,在文件my_file.txt中查找不包含"hello"的行:
grep -v "hello" my_file.txt
递归搜索文件夹及其子文件夹
通过-r选项可以递归搜索指定文件夹及其子文件夹中的所有文件。比如,在文件夹/my_folder和子文件夹中查找"hello":
grep -r "hello" /my_folder/
显示匹配行及其上下文
使用-A、-B或-C选项可以将匹配行及其前后几行文本一起显示下来。比如,在文件my_file.txt中查找包含"hello"的行及其后2行:
grep -A 2 "hello" my_file.txt
以上是grep命令的基本用法和一些常见示例,使用grep命令可以快速确切地搜索文本内容,提升我们的工作效率。
sed命令
sed命令是一种流编辑器,主要用于对文本进行编辑和替换操作,可以实现单行、多行模式匹配、替换等多种操作。它可以从一个或多个文件中读取输入,对文本内容应用一个操作集,之后输出结果。
sed命令的基本句型格式为:
sed [选项] 'command' file(s)
其中,选项和command是可选的,file(s)是须要处理的文件。假如没有指定文件,则默认处理标准输入。
常见的选项:
常见的命令:
替换命令(s)
替换命令用于将匹配模式替换为指定字符串。它的句型格式为:
s/匹配模式/替换字符串/
比如,将所有匹配到的"apple"替换为"orange":
sed 's/apple/orange/' file.txt
不仅字符/可以作为分隔符,还可以使用其他字符作为分隔符,比如#、|等符号。
删掉命令(d)
删掉命令用于删掉匹配到的行或则指定的范围。它的句型格式为:
d
比如,删掉所有富含"apple"的行:
sed '/apple/d' file.txt
复印命令(p)
复印命令用于将符合指定匹配模式的行复印到标准输出。它的句型格式为:
p
比如,查找所有包含"apple"的行并复印下来:
sed -n '/apple/p' file.txt
里面的-n选项可以禁用默认输出,只输出经过更改后的内容。
替换多个匹配模式
假如须要替换多个匹配模式,可以使用分号(;)或换行符将多个替换命令组合上去,比如:
sed 's/apple/orange/;s/banana/grape/' file.txt
里面的事例中,将匹配到的"apple"全部替换为"orange",将匹配到的"banana"全部替换为"grape"。
条件句子
可以使用条件句子来指定各类替换和操作的规则。条件句子的格式为:
/模式1/ command1
/模式2/ command2
/模式3/ command3
比如,将文件中匹配到的一行多个空格压缩为一个空格:
sed 's/ */ /g' file.txt
其中,2个中括弧中的空格表示起码出现1次以上,g表示全局查找并替换。
保存结果
假如须要将更改后的结果保存到指定的文件中,可以使用重定向符号(>)将结果输出到一个新文件中:
sed 's/apple/orange/' file.txt > new_file.txt
里面的命令会将file.txt文件中所有的"apple"字符串替换为"orange",并将结果保存到new_file.txt文件中。
以上是sed命令的一些基本用法和常见命令的示例linux 软件,通过对sed命令的学习,可以提升文本处理的效率。须要注意的是,因为sed命令的功能十分强悍,使用不当可能会对文件导致不可逆的影响,因而在使用sed命令时一定要当心。
awk命令
awk是一种用于文本处理的命令行工具,它支持对文本的剖析、过滤和低格。awk命令的名子来始于其创始人的简写:AlfredAho、PeterWeinberger和BrianKernighan。awk命令的主要功能是在数据文件中查找和处理文本,可支行处理或按记录处理。awk命令支持基本算术、条件判定、循环句子、内置函数等,提供了一个强悍的语言框架,可以编撰复杂的脚本。
awk命令的基本句型如下:
awk options 'pattern { actions }' file
其中,options表示选项;pattern表示正则表达式模式,假如匹配到就执行前面的actions命令,actions可以包含多个命令,每位命令用英语分号隔开;file表示处理的文件名,也可以在命令行输入数据,不须要使用文件名。
以下是awk命令的常用选项:
以下是awk命令常用的示例:
复印文本文件中的行
awk命令可以拿来复印一个文本文件中的所有行。诸如,复印my_file.txt中的所有行:
awk '{print}' my_file.txt
复印文件中某列的值
假如你想只复印某一列的值,可以指定不同的列分隔符,使用$符号就可以复印出指定的列。比如,在file.txt文件中,用冒号分隔每一列,复印第二列的内容:
awk -F, '{print $2}' file.txt
在这个事例中,-F选项指定分隔符为冒号。$2表示第二列,awk会输出第二列的值。
使用条件句子
awk命令可以使用条件句子来过滤结果。诸如,复印file.txt文件中第二列值等于’hello’的行:
awk -F, '$2=="hello" {print}' file.txt
在这个事例中,-F选项指定分隔符为冒号。$2=="hello"表示假如第二列值等于’hello’,就执行前面的命令。
使用外置函数
awk命令支持多种外置函数RAR FOR LINUX,比如,要求file.txt文件中的第二列值的平均值:
awk -F, '{total += $2; count++} END {print total/count}' file.txt
在这个事例中,-F选项指定分隔符为冒号。{total+=$2;count++}表示对第二列值累加求和,同时记录行数。END命令表示最后复印结果。
对文件的每一行执行同一个脚本
可以使用-f选项和脚本文件执行相同的脚本。诸如,将脚本保存在myscript.awk文件中,对file.txt文件执行脚本:
awk -f myscript.awk file.txt
以上是awk命令的基本用法和常见示例,使用awk命令可以快速确切地处理文本数据,提升我们的工作效率。