任务8:使用grep和awk从文件中筛选字符串
任务要点:字符筛选
步骤1:下载周杰伦歌词文本,并进行解压。
https://mirror.coggle.club/dataset/jaychou_lyrics.txt.zip
方法:
(1)下载文本:wget https://mirror.coggle.club/dataset/jaychou_lyrics.txt.zip
(2)由于该文件是zip文件,所以我们使用unzip来解压,unzip jaychou_lyrics.txt.zip
其他的压缩文件的解压可以参考博客。另外linux的命令大全。
步骤2:利用grep命令完成以下操作,并输出到屏幕
grep
:在文件中提取和匹配符合条件的字符串行。
[root@localhost ~]# grep [选项] "搜索内容" 文件名
参考:
https://blog.csdn.net/baidu_41388533/article/details/107610827
https://www.runoob.com/linux/linux-comm-grep.html
2.1 统计歌词中 包含【超人】的歌词
Ctrl+空格切换到中文输入法。
grep "超人" jaychou_lyrics.txt
andy@ubuntu:~/coggle/andyguo$ grep "超人" jaychou_lyrics.txt 如果超人会飞 那就让我在空中停一停歇 不要问我哭过了没 因為超人不能流眼泪 只能说当超人真的好难 如果超人会飞 那就让我在空中停一停歇 不要问我哭过了没 因為超人不能流眼泪
2.2 统计歌词中 包含【外婆】但不包含【期待】的歌词
grep "外婆" jaychou_lyrics.txt | grep -v "期待"
2.3 统计歌词中 以【我】开头的歌词
grep "^我" jaychou_lyrics.txt
2.4 统计歌词中 以【我】结尾的歌词
grep "^我" jaychou_lyrics.txt • 1
步骤3:利用sed命令完成以下操作,并输出到屏幕
https://www.cnblogs.com/JohnLiang/p/6202962.html
sed是文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作。
将歌词中 第2行 至 第40行 删除将歌词中 所有【我】替换成【你】
sed -n '/我/p' jaychou_lyrics.txt | sed 's/我/你/g'