shell for循环

转 shell awk 使用详解

此生再无相见时 提交于 2020-03-14 11:30:32
awk简介 awk: 中文意思是报告生成器 能够根据我们输入的信息,将信息格式化以后显示,将定义好的信息以比较美观(直观)的方式显示出来出现比较早,继而出现了new awk(nawk)在windows上实现,gawk, awk实现在linux上。awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供 了Bell实验室和GNU的一些扩展。下面就对awk进行介绍。 awk使用的基本格式: 1 2 3 # awk [options] 'script' file1 file2, ... # awk [options] 'PATTERN { action }' file1 file2, ..

shell创建testXX.sh练习

你离开我真会死。 提交于 2020-03-13 23:47:33
#!/bin/bash #查找文件夹下最大的testXX.sh,并将XX加1后创建文件,并赋予可执行权限 IFS=$'\n' varList=$( ls -a test[0-9]* ) maxnum=0 #循环找出最大值 for item in $varList do num=${item#*test} num=${num%.*} if [ $maxnum -lt $num ] then maxnum=$num fi done #echo $maxnum # #最大文件数加1 maxnum=$[ $maxnum+1 ] filename=test$maxnum.sh #echo $filenam #e #创建文件 echo "#!/bin/bash" > $filename # #赋予可执行权限 chmod u+x ./$filename # #输出创建的文件名 echo $filename 来源: 51CTO 作者: CharlesChchch 链接: https://blog.51cto.com/12694001/2478094

Shell脚本之awk详解

三世轮回 提交于 2020-03-13 14:08:18
一.基本介绍 1.awk: awk是一个强大的文本分析工具,在对文本文件的处理以及生成报表,awk是无可替代的。awk认为文本文件都是结构化的,它将每一个输入行定义为一个记录,行中的每个字符串定义为一个域(段),域和域之间使用分割符分割。 2.功能:流控制、数学运算、进程控制、内置的变量和函数、循环和判断 3.工作原理: awk 会把每行进行一个拆分,用相应的命令对拆分出来的“段”进行处理。 (1)行工作模式,读入文件的每一行,会把一行的内容,存到$0里 (2)使用内置的变量FS(段的分隔符,默认用的是空白字符),分割这一行,把分割出来的每个段存到相应的变量$(1-100) (3)输出的时候按照内置变量OFS(out FS),输出 (4)读入下一行继续操作 简单实例 [root@tx3 ~]# echo "this is a book" > awk.txt [root@tx3 ~]# awk '{print $2,$1,$3,$4}' awk.txt is this a book 4. Awk常用内置变量表: 1 $0 当前记录(作为单个变量) 2 $1~$n 当前记录的第n个字段,字段间由FS分隔 3 FS 输入字段分隔符 默认是空格 4 NF 当前记录中的字段个数,就是有多少列 5 NR 已经读出的记录数,就是行号,从1开始 6 RS 输入的记录他隔符默 认为换行符 7 OFS

shell简介

时光毁灭记忆、已成空白 提交于 2020-03-11 01:33:42
1.1 什么是shell 变量 命令大礼包 判断循环 #重复性的工作 节约时间 1.2 书写shell脚本 mkdir -p /server/scripts 尽量把脚本都放在这个目录下 #!/bin/bash 这个脚本默认使用的命令解析器是 /bin/bash shell脚本之变量 2.1 什么是变量 未知数=====变量 2.2 环境变量(全局变量) 大写 哪里都生效 都可以使用 LANG 手动创建一个环境变量 ##临时创建 [root@dzc ~]# cd /server/scripts/ [root@dzc scripts]# export OLDBOY=teacher [root@dzc scripts]# env |grep -i oldboy OLDBOY=teacher ###永久生效 echo 'export OLDBOY=teacher' >>/etc/profile ###生效 source /etc/profile 与用户环境变量有关的文件 目录 /etc/profile、/etc/bashrc、 /etc/profile.d/ 用户登录到系统会运行这个目录下的脚本 用户环境变量配置文件 ~/.bash_profile ~/.bashrc 1.1 普通变量 [root@dzc scripts]# a=100 [root@dzc scripts]# echo

大数据学习第4天

纵然是瞬间 提交于 2020-03-09 07:44:36
大数据学习第四天 pstree 查看当前进程结构 source 加载文件 在当前bash . 在当前bash运行脚本 bash 相当于浏览器加cmd chomd +x 把文件变为可执行文件 #! /路径 在文件首行指定运行编译/解释器 不写时默认bash #! 注释的行会在第一次读取时直接运行 yum serch 查询yum情况 文件输出类型 0 标准输入 1 标准输出 2 错误输出 可以用于多种结果的不同输出 正常结果 1>/路径 错误结果 2>/路径 配置service服务文件 /etc/init.d/ chkconfig nn 运行模式 1-6 nn 运行优先级 nn 关机级别 vi 模式下 末行 set ts设置缩进距离 在脚本中'命令行' 变量名='cat 文件名'赋值 获取文件内容赋值变量 bash -x debug运行 ps -aux 查看所有进程 chkconfig 所有服务的配置情况 --list 查看所有服务的配置启用情况 $(变量名)字符串 变量字符串拼接 子bash执行指令时直接继承父bash环境(变量 运行环境...) 子bash执行文件时不会继承父bash的值 & 后台运行 | 管道创建子进程时会全部继承父bash的值 ' ' 强引用 完全引用 "" 弱引用 while 后面必须跟一个命令 比如test du -h 查看文件夹下文件大小 $IFS

shell简单编程

五迷三道 提交于 2020-03-06 18:37:07
赋值与循环分支 $x 用于取变量x的值 $1 表示第一个参数,$#表示参数个数,shift移动一个参数。 let i=$x+$y,为整数操作赋值,所以必须有两个以上操作数.当只有一个操作数时使用,i=$x. #!/bin/bash echo "please input num:" read num echo "the num is $num" #声明变量,不能有空格 sum=0 i=0 # while循环,需要留出空格 while [ $num -gt $i ] do let mo=$i%2 # 开始条件需要留出空格 # then,else 要单独留出空行 if [ $mo -eq 0 ] then 3 赋值不能有空格 let sum=$sum+$i else touch $i tar cvf - `find . -mtime -1 -type f -print` > x.tar # 结束条件 fi let i=$i+1 # 结束循环 done echo "the sum is $sum" for循环以及数组 #!bin/bash echo "my student number is :1133710513, my name is zhiwei huang" city[1]=Beijing city[2]=Shanghai city[3]=Wuxi city[4]=Wenzhou

Linux命令基础及shell基础

一世执手 提交于 2020-03-06 03:40:27
■Linux基本命令 进入当前目录下的文件夹 cd 文件夹名 进入从根目录算起的文件夹 cd / home / 文件夹名 返回上一级 cd . . 显示当前文件夹 pwd 给文件夹赋予访问权限 chmod 777 文件夹名 把windows文件转成unix文件(将windows的\r\n替换成\n) dos2unix 文件名 显示文件一览 dir ll ls 清屏 clear 创建文件夹 mkdir 创建文件 touch 文件名 复制文件 cp 源文件名 新文件名 执行shell脚本 bash xx . sh ■Shell 变量定义 str = abcd 变量使用 str1 = $str If判断(-d是判断文件夹是否存在 rm -rf是强制删除文件夹) if [ - d $folder ] ; then rm - rf $old_folder fi For循环(循环5次,从1到5,每次的值保存在num中,touch 是创建文件) for num in `seq 1 5` do touch $old_folder / CSV_OLD_ $ { num } . csv done 文件读取 # ! / bin / bash for i in `cat name.txt` ; do echo $i done 逐行读取放到变量数组里 cat property . ini | while

shell脚本编写习惯

淺唱寂寞╮ 提交于 2020-03-05 12:00:20
前言:在公众号看一篇比较不错的shell脚本文章,自己学习同时,加一些例子分享下,哪里做得不好,请多多指教哈 一.在脚本写注释 1 #脚本的参数 2 #脚本的用途 3 #脚本的注意事项 4 #脚本的写作时间,作者,版权等 5 #各个函数前的说明注释 6 #一些较复杂的单行命令注释 二、脚本中有命令运行失败时退出脚本 set -o errexit 或 set -e 例子:touch命令替换为touchs #!/bin/bash set -e number=1 echo $number touchs 1.txt set +e 执行脚本 sh test.sh test.sh: line 6: touchs: command not found 三、脚本中使用到未声明变量时退出脚本 set -o nounset 或 set-u   例子:number是未声明变量 #!/bin/bash set -u numbers=1 echo $number echo '哈哈' set +u 执行脚本 sh test.sh test.sh: line 5: number: unbound variable 四、使用双引号引用变量  例子:一个普通循环 例子 #!/bin/bash set -u for i in `seq 10`;do echo "$i" done 五、在脚本中多使用函数 #!/bin

活学活用linux shell之-实现1+2+3...+100=?的7种方法分享

喜你入骨 提交于 2020-03-02 08:10:47
活学活用linux shell之-实现1+2+3...+100=?的7种方法分享 前言: 本文通过 shell编程实现1+2+3...+100=?的7种方法 来活学活用shell, 学完本文你将熟悉 for,while,until循环的用法,及(()),let,expr等shell计算 命令的使用方法。 ------------------------------------------------- 4.(())的其它写法 [root@oldboy-B scripts]# cat for6.sh sum=0 for((i=1;i<=100;i++)) do sum=$((i+sum)) done echo $sum [root@oldboy-B scripts]# cat for7.sh sum=0 for((i=1;i<=100;i++)) do sum=$((i+$sum)) done echo $sum 提示:以上两结果都是对的 ------------------------------------------------- 5.使用until语句及(())计算 [oldboy @A ~]$ cat until-1.sh #!/bin/sh i=1 until ((i >100 )) do ((j=j+i)) ((i++)) done echo $j 提示

linux之shell脚本管理(一)

为君一笑 提交于 2020-02-29 14:05:43
在Shell脚本中执行使用if语句的好处是:可以根据特定的条件(eg:判断备份目录是否存在)来决定是否执行某项操作,当满足不同的条件时执行 不同的操作(eg:备份目录不存在则创建该目录,否则跳过操作)。该文将分别从条件测试操作,if语句结构,应用示例这三个方面讲解if语句在Shell 脚本中的应用。 1、条件测试操作: 需要在Shell脚本中有选择性地执行任务时,首先面临的问题就是,如何设置命令执行的条件? 在Shell环境中,可以根据命令执行后返回状态值来判断该命令是否成功执行,当返回值为0是表示成功执行,否则(非0值)表示执行失败。用于特定条件表达式的测试时,可以使用Linux系统中提供的专用工具——test命令、 使用test测试命令时,可以有以下两种形式。 test 条件表达式 【 条件表达式 】 这两种方式的作用完全相同,但通常后一种形式更为常用,也更贴近编程习惯。需要注意的是,方括号“[”或者“]”与条件表达式语句之间至少需要有一个空格进行分隔。 根据需要判断的条件内容不同,条件操作也不同,最常用的条件主要包括文件状态测试,比较整数值大小,比较字符串,以及同时判断多个条件时的逻辑关系,下面将分别进行讲解。以下主要采用方括号的测试形式。 1.1、测试文件状态 文件状态测试是指根据给定的路径名称,判断该名称对应的是文件还是目录,或者判断文件是否可读,可写,可执行等