首页 > 编程知识 正文

shell编辑工具,shell开发工具

时间:2023-05-04 02:50:04 阅读:184384 作者:1081


脚本的调试

-n 读一遍脚本中的命令但不执行,用于检查脚本中的语法错误

-v 一边读脚本,一边把执行过的脚本命令打印到标准错误输出

-x 可以在程序中设置调试某一段

grep 基本正则(+E可成扩展正则)

egrep 扩展正则

shell编程常用工具: grep 根据文件内容无过滤find 根据文件名文件类型awk 列处理工具sed 行处理工具xargs 将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。 find

不会打开文件里面的内容

命令的形式: find 路劲名 -option[-print -exec -ok...] 参数 pathname:查找的目录路径(/表示系统根目录,递归查找)-print:将匹配的文件输出到标准输出-exec: 对匹配的文件执行参数所给出的shell命令-ok: 和-exec作用相同,模式安全

例如:

1. 找到当前目录下的所有普通文件,并将他们全部列出 find . -type f -exec ls -l {} ; 在/logs目录中查找更改时间在5日天以前的文件并删除 $ find logs -type f -mtime +5 -exec rm {} ; 2.用perm选项

按照文件权限模式用perm选项,按文件权限模式来查找文件(八进制)

find . -perm 755 -print 3.忽略某个目录

使用-prune,如果同时使用了-depth选项,那么-prune就会被find忽略

4. -nouser

查找主账户已经被删除的文件,使用-nouser.

在home目录下查找所有的这类文件: find /home -nouser -print xargs

将前一个命令的输出传递给下一个命令,作为参数,默认命令echo

只有一个进程,每次只获取一部分文件。

xargs与管道|的区别

| 用来将前一个命令的标准输出传递到下一个命令的标准输入。

xargs 将前一个命令的标准输出传递给下一个命令,作为它的参数。

xargs与exec的区别 exec参数是一个一个传递的,传递一个参数执行一次命令;xargs一次将参数传给命令,可以使用-n控制参数个数exec文件名有空格等特殊字符也能处理;xargs不能处理特殊文件名,如果想处理特殊文件名需要特殊处理

exec的缺点是

每处理一个文件/目录,都要启动一次命令,效率不好;格式麻烦,必须用{}做文件的代位符,必须用 ;作为命令的结束符,书写不便。而xargs不能操作文件名有空格的文件。所以如果要使用的命令支持一次处理多个文件,并且也知道这些文件里没有带空格的、 文件数目也不大,那么使用 xargs比较方便; 否则,就要用 exec了。 sed

行处理工具

流编译器。把待处理文件的内容连同处理结果一起输出

常用命令:

/pattern/p 打印匹配pattern的行/pattern/d 删除匹配pattern的行/pattern/s/pattern1/pattern2/ 查找符合pattern的行,将该行第一个匹配pattern1的字符串替换为pattern2/pattern/s/pattern1/pattern2/g 查找符合pattern的行,将该行所有匹配pattern1的字符串替换为pattern2

打印其中包含abc的行:

python@ubuntu:~/1004$ vi t10.shpython@ubuntu:~/1004$ sed '/456/p' t10.sh123abc456456

删除:

python@ubuntu:~/1004$ sed /abc/d t10.sh123456

删除第二行第三行:

python@ubuntu:~/1004$ sed '2,3d'除 t10.sh123

匹配标签:

sed 's/<[^>]*>/ /g' t11.sh awk 列处理工具 $0 代表行$1,$2...列

打印第二列:

python@ubuntu:~/1004$ awk '{print $2;}' t12.sh102030

打印第二列大于10的:

python@ubuntu:~/1004$ awk '$2>10 {printf "%st%sn", $0, "aaa"}' t12.shp2 20aaap3 30aaa

打印一共有多少行空格:

python@ubuntu:~/1004$ awk '/^ *$/ {x=x+1;} END {print x}' t12.sh5

打印系统中的用户账号列表:

awk 'BEGIN {FS=":"} {print $1;}' /etc/passwd

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。