二. 第六单元.shell脚本命令

#########################
##二. 第六单元.shell脚本命令####
#########################

1.diff
diff        file file1            ##比较两个文件的不同
        -c                        ##显示周围的行
        -u                        ##按照一定格式统一输出生成补丁
        -r                        ##比较两个目录中文件的不同

patch       file file.path        ##打补丁
        -b                        ##备份原文件

2.grep
grep  关键字符      文件|目录        ##在文件或目录中查找含有关键字的行

grep  -i                    ##忽略大小写
      -n                    ##显示关键字所在行
      -c                    ##显示过滤结果的个数
      -v                    ##反向过滤
      -E  “关键字1|关键字2”   ##过滤多个关键字
      -r    目录                           ##在目录中查找含有关键字的文件
注意: ^关键字                ##以关键字开头
            关键字$                ##以关键字结尾

3.cut
cut                          ##截取字符
cut -d 分隔符                                 ##指定分隔符
cut -f 1,7                ##显示指定的列
cut -c 1-4                 ##显示指定的字符

4.sort                       ##排序
sort
        -n                 ##纯数字排序
        -u                 ##去冗余
       |uniq -c         ##去除冗余并统计冗余次数
        -t                 ##指定分隔符
        -k                 ##指定列

5.uniq
sort file |uniq -c         ##去除冗余并统计冗余次数
      |uniq    -d         ##显示冗余行
      |uniq    -u         ##显示唯一行

6,sed
sed ‘s/原字符/替换字符/g‘ file
sed -e ‘策略1‘  -e ‘策略2‘  file
sed -i file                   ##把转换后的内容输入到指定文件
sed ‘3,5s/原字符/替换字符/g‘    ##3-5行替换
sed xd                        ##屏蔽指定行
sed xp                        ##复制指定行
sed -n xp                   ##只显示指定行

建立用户的脚本
#!/bin/bash
MAX=$( wc -l $1 | cut -d " " -f 1)

for NUM in $( seq $MAX )
do
    USERNAME=$( sed -n ${NUM}p $1)
    PASSWD=$( sed -n ${NUM}p $2)
    useradd $USERNAME
    echo $PASSWD | passwd --stdin $USERNAME
done

7.awk

简介

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。

awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

使用方法

awk ‘{pattern + action}‘ {filenames}

尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。

awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。

通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。

调用awk

有三种方式调用awk
复制代码

1.命令行方式
awk [-F  field-separator]  ‘commands‘  input-file(s)
其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。
在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

2.shell脚本方式
将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。
相当于shell脚本首行的:#!/bin/sh
可以换成:#!/bin/awk

3.将所有的awk命令插入一个单独文件,然后调用:
awk -f awk-script-file input-file(s)
其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的

例:
只显示本机的ip地址
ifconfig eth0 | grep inet | grep inet6 -v | awk  -F  " "  ‘{print $2}‘
172.25.0.222

时间: 2024-10-26 06:58:33

二. 第六单元.shell脚本命令的相关文章

linux 基础 shell脚本命令

#########shell脚本命令#### 1.diff diff      file file1             ####比较两个文件的不同 -c                         ####显示周围的行 -u                         ####按照一格式统一输出生成补丁 -r                         ####比较两个文件的不同 patch       file file.path       ####打补丁 -b      

shell脚本命令

####################### ####6.shell脚本命令#### ####################### ####1.diff#### diff file file1##比较两个文件的不同 -c##显示周围的行 -u##按照一格式统一输出生成补丁 -r##比较两个目录中文件的不同 patchfilefile.path##打补丁 -b##备份原文件 ####2.grep#### grep关键字符文件|目录##在文件或目录中查找含有关键字的行 grep-i##忽略大小写

Linux中执行shell脚本命令的4种方法总结

bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码 代码如下: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh.如果不加上./,bash可能会响应找到不到hello.sh的错误信息.因为目前的工作目录(/data/shell)可能不在

前端自动化 shell 脚本命令 与 shell-node 脚本命令 简单使用 之 es6 转译

(背景: 先用 babel 转译 es6 再 用 browserify 打包 模块化文件,来解决浏览器不支持模块化 )(Browserify是一个让node模块可以用在浏览器中的神奇工具) 今天折腾了一上午,对于前端好多自动化管理的命令用起来,步骤甚多,故想写一个脚本文件,将项目所需要执行到命令 都 写在一个脚本文件中,在命令行 只需写一个命令即 完成所有事情.配置的环境: node + git1.第一步:在项目根目录下 新建 package.json 配置文件 { "name": &

Linux 定时执行shell脚本命令之crontab

crontab可以在指定的时间执行一个shell脚本以及执行一系列Linux命令 例如:服务器管理员定时备份数据库数据.日志等 详解: 常用命令: crontab –e //修改 crontab 文件,如果文件不存在会自动创建. crontab –l //显示 crontab 文件. crontab -r //删除 crontab 文件. crontab -ir //删除 crontab 文件前提醒用户. service crond status //查看crontab服务状态 service

shell脚本命令格式注意点

1.大部分的Linux系统默认配置bash.对比sh,bash扩展了一些命令和参数,并且保留对sh的一些兼容.除了bash.sh还有csh(语法类似C语言).tcsh(csh升级版).ash(适合低内存环境) 2.脚本开头 #!/bin/sh , #!必须有,后面跟上的是shell的路径 3.变量赋值和取值 (1) Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同. variable=value  注意:赋值号左

Shell脚本命令图片

查看相关文档:shell脚本1  shell脚本2 原文地址:https://www.cnblogs.com/JBLi/p/10697864.html

shell脚本命令行参数里的空白符

看一个小脚本 #!/bin/bash #demonstarting the shift command count=1 while [ -n "$1" ] ; do echo "Parameter #$count=$1" count=$[ $count + 1 ] shift done echo echo 这个脚本首先测试第一个参数是否存在 -n "$1" ,存在的话打印,然后所有参数向左移动一个位置,变量$1的值会被覆盖,变量$0(也就是程序名

六、Shell脚本高级编程实战第六部

一.写一个start_nginx脚本,当启动.停止.重启时利用系统函数模拟实现系统脚本启动的特殊颜色效果 (用if实现) #!/bin/sh. /etc/init.d/functions if [ $# -ne 1 ]  then   echo "USAGE $0 {start|stop|restart}"   exit 1fi if [ "$1" == "start" ]  then    action "start nginx&qu