网站怎样做https/优化软件下载
目录
- 八、使用grep和awk从文件中筛选字符串
- 8.1下载周杰伦歌词文本,并进行解压
- 8.2利用grep命令完成以下操作,并输出到屏幕
- 8.3 利用sed命令完成以下操作,并输出到屏幕
- 九、在目录下创建zip和tar压缩文件,并进行解压
- 9.1 在/home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹中,下载
- 9.2使用zip 压缩/home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹
- 9.3将 /home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹,打包为tar格式
- 9.4将 /home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹,打包为tar.gz格式
- 十、使用find和locate定位文件
- 10.1使用find统计文件系统中以py为后缀名的文件个数
- 10.2使用find寻找/home/文件夹下文件内容包含datawhale的文件
- 10.3 使用locate寻找到python3.6.1.gz文件
八、使用grep和awk从文件中筛选字符串
字符筛选
8.1下载周杰伦歌词文本,并进行解压
创建文件夹并下载
mkdir Jay
wget https://mirror.coggle.club/dataset/jaychou_lyrics.txt.zip
使用unzip进行解压
unzip jaychou_lyrics.txt.zip
使用cat进行查阅
可看出解压成功。
8.2利用grep命令完成以下操作,并输出到屏幕
grep 的作用是在文件中提取和匹配符合条件的字符串行。
其命令格式为:grep [选项] “搜索内容” 文件名
选项 | 作用 |
---|---|
-i | 忽略大小写 |
-n | 输出行号 |
-v | 反向查找,显示不包含匹配文本的所有行 |
–color=auto | 搜索出的关键字用颜色显示 |
因此,以下要求可以通过这些参数简单的实现:
- 统计歌词中 包含【超人】的歌词
grep 超人 jaychou_lyrics.txtgrep --color=auto 超人 jaychou_lyrics.txtgrep -n 超人 jaychou_lyrics.txt
- 统计歌词中 包含【外婆】但不包含【期待】的歌词
在Linux shell 中,可以通过管道符 ∣|∣ 将第一个命令的输出结果返回给第二个命令。
并且将解的集合更小的放入管道符 ∣|∣ 左侧,第二个命令只需要处理第一个的输出,而不是整个输入,可以获得更优的性能。
grep -n 外婆 jaychou_lyrics.txtgrep -n 外婆 jaychou_lyrics.txt | grep -v 期待
- 统计歌词中 以【我】开头的歌词
在开头和结尾按照一定规律匹配文本,可以使用正则表达式相关的知识。
参数 | 功能 |
---|---|
^ | 匹配开头 |
$ | 匹配结尾 |
grep ^我 jaychou_lyrics.txt
- 统计歌词中 以【我】结尾的歌词
grep 我$ jaychou_lyrics.txt
注意这里$是放在想匹配关键词的后面,而^是放在匹配关键词的前面。
8.3 利用sed命令完成以下操作,并输出到屏幕
sed是一个文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作。
命令格式:sed [-选项] ‘command’ 输入文本
参考链接
常用选项:
选项 | 描述 |
---|---|
-n | 使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来 |
-e | 直接在指令列模式上进行 sed 的动作编辑 |
-f | 直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作 |
-r | sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法) |
-i | 直接修改读取的档案内容,而不是由萤幕输出。 |
常用命令:
命令 | 描述 |
---|---|
a | 新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行) |
c | 取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行 |
d | 删除,因为是删除啊,所以 d 后面通常不接任何东西 |
i | 插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行) |
p | 列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作 |
s | 取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦 |
- 将歌词中 第2行 至 第40行 删除
sed 2,40d jaychou_lyrics.txtcat jaychou_lyrics.txt | head -n 40
此时文件内容是未改变的。
若加上-i参数的话
sed -i 2,40d jaychou_lyrics.txtcat jaychou_lyrics.txt | head -n 40
此时文件内容就和第一次的一样了,证明加入-i后才对文件内容有修改。
- 将歌词中 所有【我】替换成【你】
sed s/我/你/g jaychou_lyrics.txt
其中/g是正则表达式
九、在目录下创建zip和tar压缩文件,并进行解压
文件压缩
9.1 在/home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹中,下载
wget https://mirror.coggle.club/dataset/jaychou_lyrics.txt.zip
9.2使用zip 压缩/home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹
zip czy.zip czy
解压使用unzip filename
9.3将 /home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹,打包为tar格式
打包
tar czvf czy.tar czy
解包:tar zxvf filename.tar
tar czvf 只打包不压缩
9.4将 /home/datawhale目录下在你英文昵称(中间不要有空格哦)的文件夹,打包为tar.gz格式
tar zcvf czy.tar.gz czy
解包的命令:tar zxvf filename.tar.gz
tar 作用只是打包,未压缩
若要压缩可以先压缩后再使用tar进行打包
十、使用find和locate定位文件
文件搜索
Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示
语法格式:find path -option [ -print ] [ -exec -ok command ] {} \;
10.1使用find统计文件系统中以py为后缀名的文件个数
若在czy文件夹进行搜索
find -name "*.py" | wc -l
wc -l 用于统计py文件的个数——相当于把find -name "*.py"的搜索结果输入给wc,wc统计行数即可,-l为统计行数。
若在datawhale文件夹进行统计:
find -name "*.py" | wc -l
10.2使用find寻找/home/文件夹下文件内容包含datawhale的文件
find /home -type f 命令的作用是查找文件;
grep “datawhale” 命令的作用是查找内容;
使用 xargs 将两者结合。
find命令去查找你要的文件,xargs会对你查找到的每一个文件,做相同的操作。
find /home -type f | xargs grep "datawhale"
这样会把匹配内容也输出,:后面的内容就是
在grep加入-r -l参数就可以只输出文件名。
find /home -type f | xargs grep -r -l "datawhale"
10.3 使用locate寻找到python3.6.1.gz文件
locate python3.6.1.gz
使用locate可以快速定位到文件所在目录。
至此,本次组队学习结束。感恩!