grep练习文档

合集下载

grep 段落

grep 段落

grep 段落使用 grep 命令在文本文件中搜索特定的段落是一种常见的任务。

grep 是一个强大的命令行工具,可以帮助我们在文本文件中查找匹配特定模式的行。

为了在文本文件中搜索段落,我们可以使用 grep 命令的 -A 和 -B 参数。

这两个参数分别用于在匹配到的行之前和之后显示额外的行。

以下是一个例子,说明如何使用 grep 命令搜索段落:假设有一个包含多个段落的文本文件 example.txt,我们想要搜索包含关键词"apple" 的段落。

我们可以使用以下命令:```shellgrep -A 2 -B 2 "apple" example.txt```上述命令中的 -A 2 和 -B 2 表示在匹配到的行之前和之后显示两行。

这样,命令将输出包含关键词"apple" 的行以及匹配行之前和之后的两行内容,即一个段落。

注意,这里的示例假设每个段落由空行分隔。

如果段落之间没有空行,我们可以根据实际情况调整命令来搜索段落。

当使用 grep 命令搜索段落时,需要注意以下几点:1. 确保关键词和文件名正确无误。

2. 可以使用 -i 参数来忽略关键词的大小写。

3. 可以结合使用其他 grep 参数来进一步调整搜索结果的准确性。

在实际应用中,grep 命令的搜索功能非常有用。

我们可以通过搜索段落快速定位和提取我们感兴趣的内容,无论是在日志文件、代码文件还是其他文本文件中。

希望这个简单的介绍能够帮助你理解如何使用 grep 命令搜索段落。

请根据实际需求和文件内容来调整命令中的参数,以获得准确的搜索结果。

Linux命令行小技巧使用grep命令查找特定类型的文件

Linux命令行小技巧使用grep命令查找特定类型的文件

Linux命令行小技巧使用grep命令查找特定类型的文件在Linux系统中,grep是一种强大的命令行工具,用于在文本文件中查找并显示包含指定模式的行。

然而,grep不仅仅可以用于文本的查找,还可以用于查找特定类型的文件。

本文将介绍如何使用grep命令来查找特定类型的文件。

1. 查找特定类型的文件要使用grep命令查找特定类型的文件,我们可以结合find命令和grep命令来实现。

find命令用于在指定目录及其子目录中查找文件,并将结果传递给grep命令进行进一步处理。

下面是一个使用grep命令查找所有扩展名为.txt的文本文件的例子:```shell$ find /path/to/directory -type f -name "*.txt" -exec grep "pattern" {} +```上述命令中,`/path/to/directory`是要查找的目录路径,`-type f`表示只查找普通文件(排除目录和符号链接),`-name "*.txt"`表示只匹配扩展名为.txt的文件,`-exec grep "pattern" {} +`表示将查找结果传递给grep命令,并在这些文件中查找指定的模式。

2. 根据文件内容查找特定类型的文件除了根据文件扩展名进行查找外,我们还可以根据文件内容来查找特定类型的文件。

这在需要查找包含特定内容的文件时非常有用。

下面是一个使用grep命令查找所有包含"hello world"的文本文件的例子:```shell$ grep -r "hello world" /path/to/directory --include \*.txt```上述命令中,`-r`表示递归地在目录及其子目录中查找文件,`"hello world"`是要查找的内容,`/path/to/directory`是要查找的目录路径,`--include \*.txt`表示仅在扩展名为.txt的文件中查找。

liunx命令练习题

liunx命令练习题

liunx命令练习题Linux命令练习题Linux是一种开源的操作系统,广泛应用于服务器和个人计算机中。

熟练运用Linux命令对于系统管理和开发工作来说是至关重要的。

本文将提供一些Linux命令练习题,帮助读者巩固对Linux命令的理解和应用。

一、文件操作命令1. 创建一个名为"practice"的目录,并进入该目录。

2. 在practice目录中,创建名为"file1.txt"和"file2.txt"的空文件。

3. 将"file1.txt"文件重命名为"newfile.txt"。

4. 复制"newfile.txt"到practice目录下,并将复制后的文件命名为"backup.txt"。

5. 删除"file2.txt"文件。

二、目录操作命令1. 在practice目录中,创建名为"dir1"和"dir2"的子目录。

2. 将"dir1"目录移动到practice目录下,并将其改名为"newdir"。

3. 复制"newdir"目录到practice目录下,并将复制后的目录命名为"backupdir"。

4. 删除"dir2"目录以及其所有内容。

三、文件查看和编辑命令1. 查看"newfile.txt"的内容。

2. 在命令行中直接编辑"newfile.txt"文件,将其中的文本改为"Hello World!"。

3. 在命令行中使用"cat"命令查看"newfile.txt"的内容。

4. 使用"grep"命令从"newfile.txt"中查找包含"World"的行。

Linux正则表达式练习

Linux正则表达式练习

Linux正则表达式练习练习⼀1、⽣成30位的随机⼝令[root@centos7 ~]#cat /dev/urandom | tr -dc "[:alnum:]" | head -c30RJL5qcA5PsQHnYE4kXui0oNkm1FNh12、判断主机版本号[root@centos7 ~]#grep -o "[0-9]\+" /etc/centos-release | head -n1练习⼆1、找出ifconfig “⽹卡名” 命令结果中本机的IPv4地址ifconfig |egrep -o "\<(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"2、查出分区空间使⽤率的最⼤百分⽐值[root@centos7 ~]#df | grep "/dev/sd" | grep -o "[0-9]*%" | grep -o "[0-9]\+" | sort -n | tail -13、查出⽤户UID最⼤值的⽤户名、UID及shell类型[root@centos7 app]#cat /etc/passwd | sort -nr -t: -k3 | head -n1 | cut -d: -f1,3,7nfsnobody:65534:/sbin/nologin4、查出/tmp的权限,以数字⽅式显⽰⽅法⼀:[root@centos7 app]#stat -c %a /tmp1777⽅法⼆:[root@centos7 app]#stat /tmp | grep Uid | cut -d\( -f2 | cut -d/ -f11777⽅法三stat /tmp | grep Uid | cut -d\( -f2 | head -c45、统计当前连接本机的每个远程主机IP的连接数,并按从⼤到⼩排序显⽰⽂件/etc/init.d/functions所有⽅法⽅法⼀grep ".*{$" /etc/init.d/functions | tr -d {⽅法⼆[root@centos7 ~]#grep -o "^.*()" /etc/init.d/functions规范⽅法三grep "^[[:alnum:]_]\+[[:space:]]*()" /etc/init.d/functions练习三1、显⽰/proc/meminfo⽂件中以⼤⼩写s开头的⾏(要求:使⽤两种⽅法,不要理解以s开头的单词)grep -i "^s.*" /proc/meminfo ⽅法⼀grep "^[Ss].*" /proc/meminfo ⽅法⼆2、显⽰/etc/passwd⽂件中不以/bin/bash结尾的⾏grep -v "/bin/bash$" /etc/passwd3、显⽰⽤户rpc默认的shell程序grep "^rpc\>" /etc/passwd | cut -d: -f74、找出/etc/passwd中的两位或三位数grep -o "\<[0-9]\{2,3\}\>" /etc/passwd5、显⽰CentOS7的/etc/grub2.cfg⽂件中,⾄少以⼀个空⽩字符开头的且后⾯存⾮空⽩字符的⾏grep "^[[:space:]]\+[^[:space:]]" /etc/grub2.cfg6、找出“netstat -tan”命令的结果中以‘LISTEN’后跟任意多个空⽩字符结尾的⾏netstat -tan| grep "LISTEN[[:space:]]*$"7、显⽰CentOS7上所有系统⽤户的⽤户名和UIDcut -d: -f1,3 /etc/passwd | grep "\<[[:digit:]]\{,3\}$""\<[[:digit:]]\{,3\}\>"(123⽤户名能匹配) 注意与上正则区别8、添加⽤户bash、testbash、basher、sh、nologin(其shell为/sbin/nologin),找出/etc/passwd⽤户名同shell名的⾏grep "^\(.*\):.*\<\1$" /etc/passwd9、利⽤df和grep,取出磁盘各分区利⽤率,并从⼤到⼩排序df | grep "^/dev/sd" | grep -o "[0-9]\{1,3\}%" | grep -o "[0-9]\{1,3\}" | sort -rn练习四1、显⽰三个⽤户root、mage、wang的UID和默认shell[root@centos7 ~]#grep "^\(root\)\|^\(xiaojun\)\|^\(zilong\)" /etc/passwd | cut -d: -f3,70:/bin/bash1001:/bin/bash1011:/bin/bash2、找出/etc/rc.d/init.d/functions⽂件中⾏⾸为某单词(包括下划线)后⾯跟⼀个⼩括号的⾏[root@centos7 ~]#grep -o "^[[:alpha:]]\+\>(" /etc/rc.d/init.d/functionscheckpid(daemon(killproc(…..3、使⽤egrep取出/etc/rc.d/init.d/functions中其基名echo "/etc/rc.d/init.d/functions" | egrep -o "[^/]+$"扩展:取出/etc/rc.d/init.d/基名[root@centos7 ~]#echo "/etc/rc.d/init.d/" | egrep -o "[^/]+/?$"4、使⽤egrep取出/etc/rc.d/init.d/functions路径的⽬录名[root@centos7 ~]#echo "/etc/rc.d/init.d/functions" | egrep -o "^/.*/" | egrep -o "^/.*[^/]"5、统计last命令中以root登录的每个主机IP地址登录次数last | grep "root" | tr -s " " ":" | cut -d : -f3 | egrep "([0-9]+.){3}[0-9]+" | uniq -c6、利⽤扩展正则表达式分别表⽰0-9:[0-9]10-99 : [1-9][0-9]100-199: 1[0-9][0-9]200-249: 2[0-4][0-9]250-255: 25[0-5]7、显⽰ifconfig命令结果中所有IPv4地址[root@centos7 ~]#ifconfig ens33 | egrep -o "\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>" 192.168.10.150255.255.255.0192.168.10.255。

计算机网络练习(习题卷18)

计算机网络练习(习题卷18)

计算机网络练习(习题卷18)第1部分:单项选择题,共52题,每题只有一个正确答案,多选或少选均不得分。

1.[单选题]划分局域网和广域网的主要依据是A)网络硬件B)网络软件C)网络覆盖范围D)网络应用答案:C解析:2.[单选题]IPV6的地址长度为________位。

A)48B)32C)64D)128答案:D解析:3.[单选题]要使模拟消息能够在数字信道上传输,须使用( )技术。

A)调制解调B)脉码调制C)曼彻斯特编码D)调频答案:A解析:4.[单选题]大规模现代计算机网络的结构不包括()A)网络底层B)网络边缘C)接入网络D)网络核心答案:A解析:大规模现代计算机网络的结构包括网络边缘(network edge)、接入网络(access network)与网络核心(network core)3部分5.[单选题]以下关于TCP/IP协议的描述中,哪个是错误的_________。

A)TCP协议提供可靠的面向连接服务B)TCP、UDP协议都要通过IP协议来发送、接收数据C)UDP协议提供简单的无连接服务D)TCP/IP协议属于应用层答案:D解析:6.[单选题]具有冲突检测的载波侦听多路访问技术(CSMA/CD), 只适用于( )网络 拓朴结构。

A)总线型C)令牌总线型D)网型答案:A解析:7.[单选题]下列MAC地址表示中,正确的是A)00-60-08-A6B)202.196.2.10C)1D)00-60-08-A6-38-F5答案:D解析:8.[单选题]Intermet的网络拓扑结构是一种A)星型B)总线型C)树形D)网状答案:D解析:9.[单选题]数据链路层中的数据块常被成为()。

A)信息|B)分组|C)帧|D)比特流答案:C解析:10.[单选题]计算机网络按威胁对象大体可分为两种: 一是对网络中信息的威胁:二是()A)对网络中设备的威胁B)人为破坏C)病毒威胁D)对网络人员的威胁答案:A解析:11.[单选题]在同一个信道上的同一时刻,能够进行双向数据传送的通信方式是( )。

linux命令试题及答案

linux命令试题及答案

linux命令试题及答案1. 列出当前目录下的所有文件和文件夹。

答案:使用命令 `ls`。

2. 查看当前目录下的隐藏文件。

答案:使用命令 `ls -a`。

3. 切换到名为 "home" 的目录。

答案:使用命令 `cd home`。

4. 查找名为 "test.txt" 的文件。

答案:使用命令 `find . -name test.txt`。

5. 统计当前目录下的文件和文件夹数量。

答案:使用命令 `ls -l | grep -v '^d' | wc -l`。

6. 创建一个名为 "newfile.txt" 的空文件。

答案:使用命令 `touch newfile.txt`。

7. 将 "newfile.txt" 文件复制到 "/home" 目录下。

答案:使用命令 `cp newfile.txt /home/`。

8. 将 "/home/newfile.txt" 文件移动到当前目录。

答案:使用命令 `mv /home/newfile.txt .`。

9. 删除当前目录下的 "newfile.txt" 文件。

答案:使用命令 `rm newfile.txt`。

10. 查看 "newfile.txt" 文件的内容。

答案:使用命令 `cat newfile.txt`。

11. 查找并替换 "newfile.txt" 文件中的 "oldstring" 为"newstring"。

答案:使用命令 `sed -i 's/oldstring/newstring/g' newfile.txt`。

12. 显示当前目录的路径。

答案:使用命令 `pwd`。

13. 显示当前系统的运行时间和平均负载。

linux中grep的操作题

linux中grep的操作题

以下是一个Linux中使用grep命令的操作题,您可以尝试回答这些问题并在终端中执行相关命令来检验答案。

使用grep命令查找一个文本文件(例如,example.txt)中包含关键词“Linux”的所有行。

命令应该是什么?
如何使用grep命令查找一个目录中所有文件中包含关键词“error”的行?
假设您想要在一个文本文件中查找关键词“apple”但不区分大小写。

应该使用什么选项?
如何使用grep命令将匹配的行输出到另一个文件(例如,output.txt)而不是在终端中显示结果?
如果您想要查找包含“word1”和“word2”的行,应该如何组合这两个关键词的搜索条件?
如何使用grep命令查找一个目录中包含“.txt”扩展名的所有文件?
假设您有一个日志文件,其中包含大量文本,但您只想查找最后10行的内容。

应该如何使用grep命令完成这个任务?
如何使用grep命令查找一个目录中所有子目录中包含关键词“pattern”的文件?
如果您想要查找一个文本文件中不包含关键词“exclude”的所有行,应该如何使用grep命令?
假设您有一个包含多个空白字符的文本文件,如何使用grep命令查找包含连续空白字符的行?
请注意,这些问题旨在帮助您练习使用grep命令进行文本搜索和过滤。

您可以在终端中执行相应的grep命令来测试答案。

grep前两行后四行

grep前两行后四行

grep前两行后四行
摘要:
一、grep 简介
二、grep 命令的使用方法
三、grep 命令的选项与参数
四、grep 命令在实际应用中的案例
五、总结
正文:
grep 是一个在Linux 和Unix 系统中广泛使用的命令行工具,它可以帮助用户在文件或文本中搜索指定的字符串或正则表达式,然后输出匹配的行。

grep 是Linux 系统中最常用的文本搜索工具之一,它的使用非常灵活,可以满足各种复杂的搜索需求。

grep 命令的基本语法是:
```
grep "pattern" file
```
其中,`pattern`是你要搜索的字符串或正则表达式,`file`是你要在其中搜索的文件名。

如果你要在多个文件中搜索,可以在文件名前加上通配符`*`。

grep 命令还有很多选项和参数,可以帮助你更精确地控制搜索结果。

例如,`-i`选项可以忽略大小写,`-v`选项可以反向匹配(即输出不匹配的行),`-n`选项可以输出匹配行的行号,`-r`选项可以递归搜索目录下的所有文件。

grep 命令在实际应用中非常广泛。

例如,你可以使用grep 命令来搜索日志文件中的错误信息,以便快速定位问题;你也可以使用grep 命令来搜索文本文件中的特定单词,以便统计其出现的次数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

grep练习:常用的grep选项是:-c 只输出匹配行的计数。

-i 不区分大小写(只适用于单字符)。

-h 查询多文件时不显示文件名。

-l 查询多文件时只输出包含匹配字符的文件名。

-n 显示匹配行及行号。

-s 不显示不存在或无匹配文本的错误信息。

-v 显示不包含匹配文本的所有行。

文件格式:第1列:城市位置编号。

第2列:月份。

第3列:存储代码及出库年份。

第4列:产品代号。

第5列:产品统一标价。

第6列:标识号。

第7列:合格数量。

file.txt文件内容:48 Dec 3BC1977 LPSX 68.00 LVX2A 138483 Sept 5AP1996 USP 65.00 LVX2C 18947 Oct 3ZL1998 LPSX 43.00 KVM9D 512219 dec 2CC1999 CAD 23.00 PLV2C 68484 nov 7PL1996 CAD 49.00 PLV2C 234483 may 5PA1998 USP 37.00 KVM9D 644216 sept 3ZL1998 USP 86.00 KVM9E 2341 含有“48”字符串的行的总数2 显示含有“48”字符串的所有行的行号3 精确匹配只含有“48”字符串的行48 Dec 3BC1977 LPSX 68.00 LVX2A 138PS:使用grep抽取精确匹配的一种更有效方式是在抽取字符串后加\ > 4 抽取代码为4 8 4和4 8 3的行483 Sept 5AP1996 USP 65.00 LVX2C 189484 nov 7PL1996 CAD 49.00 PLV2C 234483 may 5PA1998 USP 37.00 KVM9D 644PS:使用[ ]来指定字符串范围5 显示使行首不是4或8219 dec 2CC1999 CAD 23.00 PLV2C 68216 sept 3ZL1998 USP 86.00 KVM9E 234PS:可以在方括号中使用^记号,表示行首不是某字符6 显示含有九月份的行483 Sept 5AP1996 USP 65.00 LVX2C 189216 sept 3ZL1998 USP 86.00 KVM9E 234PS :使用- i开关可以屏蔽月份S e p t的大小写敏感7 显示以K开头,以D结尾的所有代码47 Oct 3ZL1998 LPSX 43.00 KVM9D 512483 may 5PA1998 USP 37.00 KVM9D 644PS:点.代表任意一个字符,由于代码是五位字符的字符串,所以中间用三个点表示任意字符8 显示头两个是大写字母,中间两个任意,并以C结尾的代码483 Sept 5AP1996 USP 65.00 LVX2C 189219 dec 2CC1999 CAD 23.00 PLV2C 68484 nov 7PL1996 CAD 49.00 PLV2C 234PS:[A-Z]表示任意一个大写字母9 查询所有以5开始以1 9 9 6或1 9 9 8结尾的所有记录483 Sept 5AP1996 USP 65.00 LVX2C 189483 may 5PA1998 USP 37.00 KVM9D 6441.[root@]# grep -c 48 file.txt2. grep -n 48 file.txt3.[root@]# grep "48\>" file.txt4.[root@]# grep -E "48[3|4]\>" file.txt5.[root@]# grep -v "^[4|8]" file.txt[root@]# grep -v "^[48]" file.txt[root@]# grep -v "^[4,8]" file.txt[root@]# grep "^[^48]" file.txt #这个是直接最简单的方法6.[root@]# grep -i Sept file.txt[root@]# grep -E "[Ss]ept" file.txt7.[root@]# grep "K...D" file.txt8.[root@]# grep "[A-Z][A-Z]..C" file.txt9.[root@]# grep "5..199[68]" file.txtdatafile.txtSteve Blenheim:238-923-7366:95 Latham Lane, Easton, PA83755:11/12/56:20300Betty Boop:245-836-8357:635 Cutesy Lane, Hollywood, CA91464:6/23/23:14500Igor Chevsky:385-375-8395:3567 Populus Place, Caldwell, NJ23875:6/18/68:23400Norma Corder:397-857-2735:74 Pine Street, Dearborn, MI23874:3/28/45:245700Jennifer Cowan:548-834-2348:583 Laurel Ave., Kingsville, TX83745:10/1/35:58900Jon DeLoach:408-253-3122:123 Park St., San Jose, CA 04086:7/25/53:85100 Karen Evich:284-758-2857:23 Edgecliff Place, Lincoln, NB92086:7/25/53:85100Karen Evich:284-758-2867:23 Edgecliff Place, Lincoln, NB92743:11/3/35:58200Karen Evich:284-758-2867:23 Edgecliff Place, Lincoln, NB92743:11/3/35:58200Fred Fardbarkle:674-843-1385:20 Parak Lane, DeLuth, MN23850:4/12/23:780900Fred Fardbarkle:674-843-1385:20 Parak Lane, DeLuth, MN23850:4/12/23:780900Lori Gortz:327-832-5728:3465 Mirlo Street, Peabody, MA34756:10/2/65:35200Paco Gutierrez:835-365-1284:454 Easy Street, Decatur, IL75732:2/28/53:123500Ephram Hardy:293-259-5395:235 CarltonLane, Joliet, IL73858:8/12/20:56700James Ikeda:834-938-8376:23445 Aster Ave., Allentown, NJ83745:12/1/38:45000Barbara Kertz:385-573-8326:832 Ponce Drive, Gary, IN83756:12/1/46:268500Lesley Kirstin:408-456-1234:4 Harvard Square, Boston, MA02133:4/22/62:52600William Kopf:846-836-2837:6937 Ware Road, Milton, PA 93756:9/21/46:43500 Sir Lancelot:837-835-8257:474 Camelot Boulevard, Bath, WY28356:5/13/69:24500Jesse Neal:408-233-8971:45 Rose Terrace, San Francisco, CA92303:2/3/36:25000Zippy Pinhead:834-823-8319:2356 Bizarro Ave., Farmount, IL84357:1/1/67:89500Arthur Putie:923-835-8745:23 Wimp Lane, Kensington, DL38758:8/31/69:126000Popeye Sailor:156-454-3322:945 Bluto Street, Anywhere, USA29358:3/19/35:22350Jose Santiago:385-898-8357:38 Fife Way, Abilene, TX 39673:1/5/58:95600 Tommy Savage:408-724-0140:1222 Oxbow Court, Sunnyvale, CA94087:5/19/66:34200Yukio Takeshida:387-827-1095:13 Uno Lane, Ashville, NC23556:7/1/29:57000Vinh Tranh:438-910-7449:8235 Maple Street, Wilmington, VM29085:9/23/63:689001.显示包含San的行2.显示以J开头的人名所在的行3.显示700结尾的行4.显示不包834的行5.显示生日12月的行6.显示电话号码的区号为834的行7.显示这样的行:它包含一个大写字后跟四个小写字母,逗号,空格,和一个大写字母8.显示姓以K或k开头的行9.显示工资为六位数的行,并在前面加行号10.显示包括Lincoln或lincoln的行,并且grep对大小写不敏1.#grep San datafile#sed -n /San/p datafile#awk /San/ datafile2.#grep ^J datafile#sed -n /^J/p datafile#awk /^J/ datafile3.#grep 700$ datafile#sed -n /700$/p datafile#awk /700$/ datafile4.#grep -v 834 datafile#sed -n '/834/! p' datafile#awk '$0 !~/834/' datafile5.#grep :12/ datafile#sed -n '/:12\//p' datafile#sed -n '\#:12/#p' datafile#awk /:12[:/:]/ datafile6.#grep :834- datafile#sed -n /:834-/p datafile#awk /:834-/ datafile7.#grep '[A-Z][a-z]\{4\}, [A-Z]' datafile#sed -n '/[A-Z][a-z]\{4\}, [A-Z]/p' datafile#awk --posix '/[A-Z][a-z]{4}, [A-Z]/' datafile8.#grep ^[Kk] datafile9.#grep -n \'[0-9]\{6\}$\' datafile10.#grep -i [Ll]incoln datafile1 显示/etc/passwd文件中以bash结尾的行2 显示/etc/passwd文件中的两位数或三位数3 显示'netstat -tan'命令结果中以‘LISTEN’后跟0个、1个或多个空白字符结尾的行;4 添加用户bash,testbash, basher以及nologin用户(nologin用户的shell 为/sbin/nologin);而后找出/etc/passwd文件中用户名同shell名的行;5 显示当前系统上root、centos或user1用户的默认的shell和UID;6 找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行;7 使用echo输出一个路径,而后egrep找出其路径基名;进一步地:使用egrep 取出其目录名;这里如果有更好的办法欢迎来讨论8 找出ifconfig命令执行结果中1-255之间的数字;-----------------------解答: grep --color=auto 'bash$' /etc/passwd解答: a.基本正则表达式:grep --color=auto '\b[[:digit:]]\{2,3\}\b'/etc/passwdb.扩展正则表达式:grep --color=auto -E '\b[[:digit:]]{2,3}\b'/etc/passwd由于基本正则表达式方式和扩展方式差不多,以下解答都采取扩展正则表达式的方式解答: netstat -tan | grep --color=auto -E 'LISTEN[[:space:]]*$'解答: eradd basheradd testbasheradd bashereradd -s /sbin/nologin nologin5.grep --color=auto -E '^([[:alnum:]]+).*\1$' /etc/passwd解答: egrep '^\<root|centos|user1\>' /etc/passwd | cut -d: -f3,7解答: grep -E --color=auto '\<[0-9a-zA-Z_]+\>\(\)'/etc/rc.d/init.d/functions解答:路径基名命令:echo /opt/app/nginx/conf/nginx.conf | sed 's/\/$//g' | egrep -o '[^/]+$'路径目录名命令:echo /opt/app/nginx/conf/nginx.conf/ | sed 's/\/$//g' | egrep -o '.*/' | sed 's/\/$//g'解答: ifconfig | egrep --color=auto'\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'cut练习创建两个不同的文件,第一个文件A,第二个文件B15:47 root@amy-78 [amy] cat Aname sex agelily nv 11jimmy nan 13keng nan 4015:48 root@amy-78 [amy] cat Blove food1 meet2 milk3 water4 pear5 apple---------------------------------------------------------- 方法一:cut文件A的第一列,cut文件B的第二列15:43 root@amy-78 [amy] cat A |cut -d' ' -f 1 >aa15:43 root@amy-78 [amy] cat B |cut -d' ' -f 1 >bb15:47 root@amy-78 [amy] cat aanamelilyjimmykeng15:47 root@amy-78 [amy] cat bblove12345然后导入到第三个文件15:48 root@amy-78 [amy] paste aa bb >C15:49 root@amy-78 [amy] cat Cname lovelily 1jimmy 2keng 34515:49 root@amy-78 [amy]方法二:15:50 root@amy-78 [amy] ./a.sh A Bresult in /tmp/result.txt15:50 root@amy-78 [amy] cat /tmp/result.txtname lovelily 1jimmy 2keng 34515:50 root@amy-78 [amy]15:49 root@amy-78 [amy] cat a.sh#!/bin/shif [ $# -ne 2 ]; thenecho "Usage: $0 " && exit 1fifile1=$1file2=$2awk '{print $1}' ${file1} > /tmp/$$.file1awk '{print $1}' ${file2} > /tmp/$$.file2paste /tmp/$$.file1 /tmp/$$.file2 > /tmp/result.txtecho "result in /tmp/result.txt"15:50 root@amy-78 [amy]第二次任务Linux基本命令1.查看当前工作目录为用户的主目录。

相关文档
最新文档