bash 脚本。find 命令,xargs,awk

rm 排除指定文件或文件夹

 rm -r !(.git)

 

find 命令两个用法

 find <指定目录> <指定条件> <指定动作>

$ find . -name 'my*' -ls

搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。

find /etc -name "*.conf"

find /etc ! -name "*.conf"

find /etc -type d

b - 块设备文件。 

d - 目录。 
c - 字符设备文件。 
p - 管道文件。 
l - 符号链接文件。 
f - 普通文件。 

 

cut OPTION... [FILE]... 切割 a list of bytes, characters, or fields(比如切割文件,或者多行字符串)

 cut -d":" -f1

-d 指定分隔符。默认为 tab。 -f 选择第几个域

比如 

find *.rmvb | cut -d"." -f1

输出  rmvg扩展的文件名

 

xargs 的一个常见用法

$ ls | xargs -t -i mv {} {}.bak

xargs 将前面命令的命令行输出(一般为字符串)作为后个命令的参数。

比如 ls | xargs ls。就是对ls输出的带空格的目录字符串输出作为后一个ls的参数,统一输出。

又比如 ls | xargs -i ls 就是对前面ls输出的每个目录(以空格区分)各自作为 后一个 ls的参数(默认使用{} 代替该参数),分别输出。

而 -t 表示在执行命令前打印该命令。

 

grep  (global search regular expression(RE) and print out the line 

全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

比如:

ls -l | grep '^a' 通过管道对ls -l输出的内容过滤,只显示以a开头的行。

grep 'test' aa bb cc 

显示在aa,bb,cc文件中匹配test的行。

grep -v 排除选择。如 ls -l | grep -v '^a' 。过滤不以 a开头的行。

 

for  in循环

基本格式

for 变量 in 取值列表
do
    各种操作
done

比如

for i in {1..100..2}
do
    echo $i
done

 

 

end

上一篇:linux – 在bash中的并行进程之间添加等待


下一篇:Redis 模糊查询删除操作