Linux面试题shell编程grep,sed,awk
Linux运维在面试时经常被问到,前面给大家分享了一些,有关Shell 编程三剑客有关的面试题今天再大家整理一些分享给大家。
1.什么是 grep 命令?它有哪些常用选项?
grep 命令是一个文本搜索工具,可以在文本文件中查找匹配的字符串。
常用选项包括 -i(不区分大小写)、-n(显示行号)、-r(递归搜索子目录)、-w(仅搜索完整单词)
、-v(显示不匹配的行)等。
2.如何使用 grep 显示匹配行的行号?
可以使用 grep -n 命令显示匹配行的行号,例如:grep -n "pattern" file.txt。
3.如何使用 grep 展示匹配行之前或之后的若干行?
可以使用 grep -A num 和 grep -B num 分别显示匹配行之后和之前的 num 行文本,
也可以使用 grep -C num 显示匹配行前后各 num 行文本。
4.什么是 sed 命令?它有哪些常用选项?
sed 命令是一种流编辑器,可执行基本文本转换。常用选项包括 -i(原地修改文件)、
-e(指定多个编辑命令)、-n(只输出经过编辑的文本)等。
5.如何使用 sed 替换文本中的某个字符串?
可以使用 sed 's/old/new/g' 命令替换文本中的某个字符串,
其中 old 为被替换字符串,new 为替换字符串。
6.如何使用 sed 删除文本中的某个字符串?
可以使用 sed 's/old//g' 命令删除文本中的某个字符串,其中 old 为被删除字符串。
7.什么是 awk 命令?它有哪些常用选项?
awk 命令是一种文本处理工具,可逐行扫描文件、处理文本、格式化输出等。
常用选项包括 -F(指定分隔符)、-v(定义变量)、-f(从文件中读取代码)等。
8.如何使用 awk 打印文件中某一列?
可以使用 awk '{print $num}' file.txt 命令打印文件中的第 num 列,
例如:awk '{print $2}' file.txt。
10.如何使用 awk 实现文本中的字符串替换?
可以使用 awk '{gsub(/old/, "new")};{print}' file.txt 命令实现文本中的字符串替换,
其中 old 为被替换字符串,new 为替换字符串。
11.什么是正则表达式?如何在 grep、sed、awk 中使用正则表达式?
正则表达式是一种描述性文本模式,用于匹配、搜索或替换文本中的字符序列。
可以在 grep、sed、awk 中使用正则表达式来搜索、替换、过滤文本。
常用的正则表达式语法包括元字符、字符集、重复次数等。
其中,在 grep 中可以使用 -E 选项启用扩展正则表达式,使用 -P 选项启用 Perl 兼容正则表达式;
在 sed 中可以使用 s/regexp/replacement/g 命令实现正则表达式替换;
在 awk 中可以使用 ~ 和 !~ 运算符实现正则表达式匹配和不匹配。
12.如何使用 grep 查找包含多个关键字的行?
使用 grep -E 'keyword1.*keyword2' file.txt 查找包含关键字1和关键字2的行。
13.如何使用 sed 编辑某个文件特定的行?
使用 sed -i 'n s/old_text/new_text/g' file.txt 编辑文件中第n行的特定文本。
14.如何使用 awk 对匹配文本进行计数?
使用 awk '/regex/{sum =$1;}END{print sum}' file.txt 计数匹配文本。
15.如何使用 grep 统计文件中特定关键字的数量?
使用 grep -c 'keyword' file.txt 统计文件中特定关键字出现的数量。
16.如何使用 sed 删除文件中的空白行?
使用 sed -i '/^$/d' file.txt 删除文件中的空白行。
17.如何使用 awk 在文件中查找最小值和最大值?
使用 awk 'BEGIN{min=999999;max=-999999}{if($1>max){max=$1};if($1<min){min=$1}}END{print "Min:",min,"Max:",max}' file.txt
在文件中查找最小值和最大值。
18.如何使用 grep 高亮显示匹配的文本?
使用 grep --color 'keyword' file.txt 高亮显示匹配的文本。
19.如何使用 sed 打印某个文件的特定行范围?
使用 sed -n 'n1,n2 p' file.txt 打印文件中第n1行到第n2行的范围。
20.如何使用 awk 在文件中查找某个字符串并输出其所在行?
使用 awk '/string/{print NR,$0}' file.txt 在文件中查找某个字符串并输出其所在行。
21.如何使用 grep 查找不包含某个字符串的行?
使用 grep -v 'exclude_word' file.txt 查找不包含某个字符串的行。
22.如何使用 sed 在文件中插入一行或多行文本?
使用 sed -i 'n a\text_to_insert' file.txt 在文件中插入一行或多行文本。
23.如何使用 awk 计算文件中列的平均数?
使用 awk '{sum =$1;count =1}END{print "Average is:" sum/count}' file.txt 计算文件中列的平均数。
24.如何使用 grep 排除掉某些字符?
使用 grep -v 'exclude_characters' file.txt 排除掉某些字符。
25.如何使用 sed 将一整行文本的字母全部转换成大写或小写?
使用 sed -i 's/./\U&/' file.txt 将一整行文本的字母全部转换成大写;
使用 sed -i 's/./\L&/' file.txt 将一整行文本的字母全部转换成小写。
26.如何使用 awk 计算文件中每行之和?
使用 awk '{sum=0;for(i=1;i<=NF;i ){sum =$i};print sum}' file.txt 计算文件中每行之和。
27.如何使用 grep 查找多个文件中特定关键字?
使用 grep -r 'keyword' folder 目录查找多个文件中特定关键字。
28.如何使用 sed 删除 HTML、XML 文件中的标签?
使用 sed -r 's/<[^>]*>//g' file.html 删除 HTML、XML 文件中的标签。
29.如何使用 awk 对文件中某个关键字进行排序?
使用 awk '{print $0 | "sort -k n"}' file.txt 对文件中某个关键字进行排序。
30.如何使用 grep 查找特定关键字所在的目录或文件名?
使用 grep -r -l 'keyword' folder 查找特定关键字所在的目录或文件名。
31.如何使用 sed 只保留文件中匹配正则表达式的行?
使用 sed -n '/regex/p' file.txt 只保留文件中匹配正则表达式的行。
32.如何使用 awk 计算某个文件中每个数字之和?
使用 awk '{sum=0;for(i=1;i<=NF;i ){sum =$i}}END{print sum}' file.txt
计算某个文件中每个数字之和。
33.如何使用 grep 查找包含某个关键字的文件列表?
使用 grep -rl 'keyword' folder 统计某个文件夹中所有匹配关键字的文件数量。
34.如何使用 sed 在文件中替换每一行的第一个字符串?
使用 sed -i 's/^string_to_replace/new_string/g' file.txt 在文件中替换每一行的第一个字符串。
35.如何使用 awk 将某个文件中的所有数字相加?
使用 awk '{sum = $1}END{print sum}' file.txt 将某个文件中的所有数字相加。
36.如何使用 grep 统计某个文件夹中所有匹配关键字的文件数量?
使用 grep -r 'keyword' folder > newfile.txt 将所有匹配的内容输出到一个新文件中。
37.如何使用 sed 更改文件中的多个字符?
使用 sed -i 's/old_text/new_text/g' file.txt 更改文件中的多个字符。
38.如何使用 awk 使用指定的分隔符对文件中的列进行拼接?
使用 awk -v OFS=',' '{print $1,$2}' file.txt 使用指定的分隔符对文件中的列进行拼接并输出。
“奥尔特云”之谜是什么?一颗巨大的彗星?在2031年最接近地球能
宇宙中的奥秘真的是探索不完。那么有一颗巨大的彗星,在2013年的时候最接近地球,这个可能性到底会不会出现呢?这个彗星到底是什么呢?一起来了解一下“奥尔特云”之谜吧。这是大部分的彗星,彗核的直径只有几公里左右,但是通过哈勃太空镜进行观测巨大的彗星,直径能够达到137公里,可以说是其他彗星的50倍,所以说这颗彗星的巨大性也是非常经典的。我要新鲜事2023-05-13 15:27:230000一般家里pm2.5是多少 pm2.5在什么范围算是正常的
在我国的一般家庭里pm2.5的值都处于35—75之间,在一些汽车尾气、重工业比较发达的地区,一般家庭的pm2.5的值可能会高于这个水平,这和当地的污染情况有很大的关系,但是这一水平是可以通过人为手段进行干预的。一、什么是pm2.5我要新鲜事2023-05-12 05:45:180000现存世界上最古老的植物是什么(桫椤)
在地球演变的长河中,有一种植物见证了无数的变迁,承载了亿万年的时光记忆,那就是桫椤。桫椤,这个名字或许在我们日常生活中并不常听到,但它却承载着地球上最为古老的树木的称号。据植物学家的研究,桫椤的历史可以追溯到距今3亿多年前,比恐龙的出现还早1.5亿年。在那个遥远的中生代侏罗纪时期,桫椤和其他一些古老的植物,如苏铁、银杏等,共同繁荣生长。这些巨大的树木遮天蔽日,成为了当时地球上生命的象征。我要新鲜事2024-02-28 15:21:580001天文学家观测到有史以来最强大的耀斑!幸好不是我们的太阳
当前,我们都知道太阳即将进入太阳活动的极大期。这意味着它更加活跃,会有大量的太阳黑子、日冕物质抛射和耀斑。但是,对我们来说幸运的是,太阳并不像“猎户座V1355”双星系统中的成员那样活跃。其中一颗恒星周期性地释放出了超级耀斑。它们的范围是有记录以来最大的太阳耀斑的十倍。我要新鲜事2023-05-03 19:22:080001获奖低拒领奖!学生自掏30万拍作品火了:完整版让网友争论不断
或许她自己也没想到,作品会这样火了。2023年青岛电影学院“金象奖”颁奖典礼现场,一名获奖女生上台抢过话筒表示拒绝领奖引发关注。期间,主持人曾靠近并轻声劝道“这个事可以私下说”,之后女生把奖状和奖杯放下后离开。在这件事情不断发酵下,女生的《吹响小山河》作品下涌入大量评论。有人称该片把留守儿童“苦大仇深”的现实题材处理得活泼、靓丽与充满童趣,很有想法。我要新鲜事2023-07-12 21:03:240000