shell脚本专题-----cat,find,grep,awk,sed(五)

cat

1.将来自文件的内容和标准输入拼接在一起,讲一个stdin和另一个文件组合起来,方法如下:

echo "添加到文件末尾" | cat - file.txt

说明: 上面的代码中, - 被作为stdin文本的文件名.

  1. cat去除多余的空白行

1.txt内容如下:

printf.sh



printf.sh

printf.sh



printf.sh


printf.sh

如果想去除多余的空白行,可以使用下面的命令:

cat -s 1.txt >save.txt

执行上面的内容以后,可以将多余的空白行去除,并且保存到save.txt中.

save.txt内容如下:

printf.sh

printf.sh

printf.sh

printf.sh

printf.sh

find

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
find常用的操作如下:
在这里插入图片描述
在这里插入图片描述
举例1. (查找当前目录下所有的mp4格式结尾的文件)

find ./ -name "*.mp4"

忽略大小写:

find ./ -iname "*.mp4"

-i指 ignore,忽略的意思.

举例2 (查找当前目录下所有的视频格式文件)

find sshuttle/ \( -name "*.mp4" -o -name "*.mkv" -o -name "*.ts" -o -name "*.mp3"    \)

说明: -o 参数代表 OR的意思.
需要用括号将匹配的内容连接起来.

举例3(否定参数!)

find可以使用"!"否定参数,例如:

find . ! -name "*.txt"

说明:上述的代码意思是:查找当前目录下不以txt结尾的所有文件.

举例4(基于目录深度的查找)
默认情况下,find会遍历所有的子目录,有的时候,我们并不需要遍历所有的目录,例如我们只想遍历到二级目录:

find . -maxdepth 2 -name "*.txt" 

说明: -maxdepth 最大的深度
-minidepth 最小的深度

举例5(删除匹配的文件)
-delete可以用来删除find查找到的匹配文件.

find . -type f -name "*.txt" -delete

说明:删除所有的txt结尾的文件.

举例6(find和exec结合使用)
find和exec结合使用作用很强大:

find . type -f -user root -exec chown ubuntu {} \;

说明:上述代码的意思是,找出当前目录下所有的root用户所管理的文件,并将文件的所有权切换成ubuntu用户;
{}是一个与-exec选项搭档使用的特殊字符串,对于每一个匹配的文件,{]会被替换成相应的文件名.

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页