练习题 一下

1.1 第8题

输出test.txt文件内容时,不包含oldboy字符串的命令

文件内容:

[root@znix ~]# cat /data/test.txt
test
liyao
oldboy

1.1.1 方法一grep

使用grep命令,找什么就写什么

-v 参数是排除的意思

[root@znix ~]# grep -v "oldboy" /data/test.txt
test
liyao

1.1.2 方法二head

使用head显示文件前2行信息(-2参数是显示两行),默认显示前10行。

[root@znix ~]# head -2 /data/test.txt
test
liyao

1.1.3 方法三 sed

sed命令使用单引号

sed命令主要用于删除

'/oldboy/d' 表示删除oldboy这个内容

[root@znix ~]# sed '/oldboy/d' /data/test.txt
test
liyao

'3d'  表示删除第三行

[root@znix ~]# sed  '3d'  /data/test.txt
test
liyao

1.1.4 方法四 awk

使用awk查找文本里的oldboy/并显示:

[root@znix ~]# awk '/oldboy/' /data/test.txt
oldboy

前面加!表示排除这个内容,不显示这个内容。

[root@znix ~]# awk '!/oldboy/' /data/test.txt
test
liyao

1.2 第9题

用一条命令完成创建目录/oldboy/test,即创建/oldboy目录及/oldboy/test

创建多级目录时需要添加参数 -p 表示创建多级目录。

[root@znix ~]# mkdir -p /oldboy/test
[root@znix ~]# ls /oldboy/
alex.txt  alex.txt.bak  oldboy.txt  test  test.sh  t.sh

[root@znix ~]# ls -l  /oldboy/test
total 0

1.3 第10题

已知/tmp下已经存在test.txt文件,如何执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt,而让系统不提示是否覆盖(root权限下)。

1.3.1 方法一:

      \cp 取消别名

[root@znix data]# \cp /mnt/test.txt /tmp/

1.3.2 方法二:

使用命令的绝对路径

 [root@znix data]# /bin/cp /mnt/test.txt /tmp/

1.4 第11题

查看ett.txt文件(共100行)内第20到第30行的内容

1.4.1 创建该文件

使用seq命令创建一个100行的文件。

[root@znix ~]# seq 5
1
2
3
4
5
[root@znix ~]#seq 100 >ett.txt

1.4.2 方法一

使用head找出前30行,通过管道传给tial,再使用tail找出后11行,然后输出。

[root@znix ~]# head -30 ett.txt |tail -11
20
21
22
23
24
25
26
27
28
29
30

1.4.3 方法二

使用sed查找20-30行,p表示行数,-n表示取消默认输出。

[root@znix ~]# sed -n '20,30p'  ett.txt
20
21
22
23
24
25
26
27
28
29
30

1.4.4 方法三

      NR表示行,逗号表示20到30,两个等于号才是真正的等于 。

[root@znix ~]# awk 'NR==20,NR==30' ett.txt

      &&表示和, => 20大于等于20, <=30 小于等于30

[root@znix ~]# awk 'NR>=20 && NR<=30' ett.txt
20
21
22
23
24
25
26
27
28
29
30

1.4.5 方法四

由于这个文件的第20行正好是20。使用grep找到20并输出,-A10 表示输出后面的10行。

[root@znix ~]# grep -A10 "20"  ett.txt
20
21
22
23
24
25
26
27
28
29
30

1.5 第13题

把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中,文件含.oldboy的字符串全部替换为oldgirl。

1.5.1 创建环境

mkdir -p /oldboy/test
cd /oldboy
echo "oldboy">test/del.sh
echo "oldboy">test.sh
echo "oldboy">t.sh
touch oldboy.txt
touch alex.txt

1.5.2 方法一

sed生效需要增加 -i 参数。

使用find找在/oldboy 目录下的 文件,名字是.sh 结尾的,使用管道xgras  传给sed,然后使用's#要被替换的内容#替换的内容#g' 对 文件进行修改。

[root@znix oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g'  -i
oldgirl
oldgirl
oldgirl

1.5.3 方法二

$( ) 先执行括号里面命令,再执行前面的命令

[root@znix oldboy]# sed 's#oldboy#oldgirl#g' $(find /oldboy/ -type f -name "*.sh")
oldgirl
oldgirl
oldgirl

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏源哥的专栏

给你的系统增加对物理地址的验证

我们开发出一个系统之后,经常有很多方法来保护我们的系统不受别人非法使用,比如说采用注册码,根据IP地址进行限制等。这些都存在一个问题就是容易给人通过拷贝注册码等...

752
来自专栏禅林阆苑

vim按键整理 【原创】

vim按键整理 Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github.com/csxi...

32810
来自专栏JMCui

Git 中 .gitignore 的配置语法

    在日常的开发中,当我们需要将一个项目提交到 Git 时,并不是所有的文件都需要提交,比如一些自动生成的文件,类似于 .idea 文件、class 文件等...

873
来自专栏深度学习与计算机视觉

Python 新建文件夹与复制文件夹内所有内容

在指定路径下新建一个文件夹: import os def newfile(path): path=path.strip() path=path....

1736
来自专栏一个爱瞎折腾的程序猿

winform复制文件到指定目录

991
来自专栏岑玉海

使用Ant编译Hadoop工程报错

  在win7用Ant编译hadoop工程的时候,遇到了一个报错,如下:   org.eclipse.core.runtime.CoreException: D...

3484
来自专栏自由而无用的灵魂的碎碎念

分享:Linux标准输入/输出和重定向

1. 标准输入与输出 我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(st...

633
来自专栏http://www.cnblogs.com

第一周作业-模拟登陆

1 #coding:utf-8 2 #Author:Mr Zhi 3 count = 0 #为累计密码输入次数,赋值初始值 4 User_i...

3399
来自专栏成猿之路

Linux 基础命令(收藏大全)

/home 普通用户的宿主目录,用户数据存放在其主目录中lib 存放必要 的运行库

974
来自专栏ml

Linux GDB常用命令一栏

Linux GDB 常用命令如下: 1.启动和退出gdb (1)启动:gdb ***:显示一段版权说明; (*** 表示可执行程序名) (2)退出:quit。有...

3464

扫码关注云+社区