本次Linux实践是Datawhale组织的组队学习
学习资料以及Linux运行环境由开源学习组织Datawhale提供
本次学习针对的对象:
Linux不会操作,不知道文件目录创建、命令行等细节
Linux不知道如何运行代码,保存模型
目录
Task3学习内容
学习资料
由Datawhale开源组织推荐
https://bilibili.com/video/BV1yr4y1C7RC.
https://bilibili.com/video/BV1Zr4y1F7sQ.
https://bilibili.com/video/BV1S64y1v7UG.
任务8:使用grep和awk从文件中筛选字符串
任务要点:字符筛选步骤1:下载周杰伦歌词文本,并进行解压。https://mirror.coggle.club/dataset/jaychou_lyrics.txt.zip
#解压文件:unzip (文件名)
步骤2:利用grep命令完成以下操作,并输出到屏幕
Linux grep 命令和通配符
Linux grep 命令
grep 的作用是在文件中提取和匹配符合条件的字符串行
#语法
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
参数 | 作用 |
---|---|
-a 或 --text | 不要忽略二进制的数据 |
-A<显示行数> 或 --after-context=<显示行数> | 除了显示符合范本样式的那一列之外,并显示该行之后的内容 |
-b 或 --byte-offset | 在显示符合样式的那一行之前,标示出该行第一个字符的编号 |
-B<显示行数> 或 --before-context=<显示行数> | 除了显示符合样式的那一行之外,并显示该行之前的内容 |
-c 或 --count | 计算符合样式的列数 |
-C<显示行数> 或 --context=<显示行数>或-<显示行数> | 除了显示符合样式的那一行之外,并显示该行之前后的内容 |
-d <动作> 或 --directories=<动作> | 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作 |
-e<范本样式> 或 --regexp=<范本样式> | 指定字符串做为查找文件内容的样式 |
-E 或 --extended-regexp | 将样式为延伸的正则表达式来使用 |
-f<规则文件> 或 --file=<规则文件> | 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式 |
-F 或 --fixed-regexp | 将样式视为固定字符串的列表 |
-G 或 --basic-regexp | 将样式视为普通的表示法来使用 |
-h 或 --no-filename | 在显示符合样式的那一行之前,不标示该行所属的文件名称 |
-H 或 --with-filename | 在显示符合样式的那一行之前,表示该行所属的文件名称 |
-i 或 --ignore-case | 忽略字符大小写的差别 |
-l 或 --file-with-matches | 列出文件内容符合指定的样式的文件名称 |
-L 或 --files-without-match | 列出文件内容不符合指定的样式的文件名称 |
-n 或 --line-number | 在显示符合样式的那一行之前,标示出该行的列数编号 |
-o 或 --only-matching | 只显示匹配PATTERN 部分 |
-q 或 --quiet或–silent | 不显示任何信息 |
-r 或 --recursive | 此参数的效果和指定"-d recurse"参数相同 |
-s 或 --no-messages | 不显示错误信息 |
-v 或 --invert-match | 显示不包含匹配文本的所有行 |
-V 或 --version | 显示版本信息 |
-w 或 --word-regexp | 只显示全字符合的列 |
-x --line-regexp | 只显示全列符合的列 |
-y | 此参数的效果和指定"-i"参数相同 |
歌词中 包含【超人】的歌词
统计歌词中 包含【外婆】但不包含【期待】的歌词
正则表达式:用于匹配字符串,包含匹配
正 则 符 | 作 用 |
---|---|
? | 匹配前一个字符重复 0 次,或 1 次(?是扩展正则,需要使用 egrep 命令) |
* | 匹配前一个字符重复 0 次,或任意多次 |
[] | 匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是 a,或者是 b,或者是 c |
[-] | 匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符 |
^ | 匹配行首 |
$ | 匹配行尾 |
统计歌词中 以【我】开头的歌词
统计歌词中 以【我】结尾的歌词
步骤3:利用sed命令完成以下操作,并输出到屏幕
linux之sed用法
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作。
将歌词中 第2行 至 第40行 删除将歌词中 所有【我】替换成【你】
任务9:在目录下创建zip和tar压缩文件,并进行解压
任务要点:文件压缩
linux压缩和解压缩命令
zip命令
解压:unzip filename.zip
压缩:zip filename.zip dirname
tar命令
解包:tar zxvf filename.tar
打包:tar czvf filename.tar dirname
步骤1:在/home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹中,下载https://mirror.coggle.club/dataset/jaychou_lyrics.txt.zip
在任务8处完成,此处不再赘述。
步骤2:使用zip 压缩/home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹。
步骤3:步骤3:将 /home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹,打包为tar格式。
此处为将文件打包为tar,并未进行压缩。
步骤4:将 /home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹,打包为tar.gz格式。
完成操作后的文件
任务10:使用find和locate定位文件
任务要点:文件搜索
Linux find 命令
Linux查找文件内容的常用方法
find 命令和 grep 命令区别
find 命令
find 命令用于在系统中搜索符合条件的文件名,如果需要模糊查询,则使用通配符进行匹配,通配符 是完全匹配(find 命令可以通过-regex 选项,把匹配规则转为正则表达式规则,但是不建议如此)。
grep 命令
grep 命令用于在文件中搜索符合条件的字符串,如果需要模糊查询,则使用正则表达式进行匹配,正则表达式是包含匹配。
步骤1:使用find统计文件系统中以py为后缀名的文件个数
步骤2:使用find寻找/home/文件夹下文件内容包含datawhale的文件
步骤3:时候用locate寻找到python3.6.1.gz文件
小结
最后一次打卡,伴随任务的结束,本次对Linux的简单入门算是有了些头脑,感谢刘羽中大佬掏钱租用的本次组队学习使用的服务器。在后续我会用虚拟机在电脑上继续深耕Linux的内容的,谢谢ssh队长披头的督促学习。