bash 脚本。find 命令,xargs,awk

rm 排除指定文件或文件夹

rm -r !(.git)  // 有些系统不支持,勿轻易尝试

ls -a | grep -v '^\.git' |xargs rm -rf   // 通过管道流直接操作

  

操作特殊字符

mv -- -r.txt
rm -rf -- -r.txt

 

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

转载于:https://www.cnblogs.com/lemos/p/8433488.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值