shell脚本以行读取文件(shell脚本行读取文件,字符个数少于5个删
shell脚本读取配置文件参数
1、 读取配置文件时,将注释符#标记的行和空行全部过滤 sed -E '/^#.*|^ *$/d' $env_file 。
2、 匹配指定参数相符的行并截取对应的值 awk -F "${param}=" "/${param}=/{print \$2}" 。
3、 获得的结果可能有多个,取最后一个值 tail -n1 。
4、这3步都用 | 管道符连接,其作用是将当前的结果作为下一条命令的输入,连续处理以达到获取参数的最终目的。
在shell脚本中,用来读取文件内各个
在shell脚本中,用来读取文件内各个域的内容并将其赋值给Shell变量的命令是:
read -p "input a val:" val echo $val。
read - 从标准输入读取数值。这个 read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用 重定向的时候,读取文件中的一行数据。
含义
shell script就像早期dos年代的.bat,最简单的功能就是将许多指令汇整写一起,让使用者很容易地就能够一个操作执行多个命令,而shell script更是提供了数组,循环,条件以及逻辑判断等重要功能,让使用者可以直接以shell来写程序,而不必使用类似C程序语言等传统程序编写的语法。
利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容
1、在linux目录/root下建立一个txt文件,内容如下,使用|竖线分割,作为我们的实验数据样本。
2、sed用法、sed-n'xp'data.txt;显示文件X行数据,获取第18行数据,即为sed-n'18p'data.txt。
3、sed-n'开始行,结束行p'data.txt;显示文件X行到Y行的内容:命令:sed-n'10,18p'data.txt。
4、head/tail用法。tail用法:tail经常用来查看文件末尾的数据,在shell中可以获取文本中指定数据行。tail-n-3data.txt获取文件最好3行数据。tail-n+3data.txt获取文件3到最后一行数据。
5、head用法:head经常用来显示文本的前n行数据。head-n10data.txt显示文本请10行数据。
6、tail和head的结合使用:例如获取文本倒数第二行数据,结果如图所示。命令:tail-n2data.txt|head-n1。
7、awk用法、awk在文本处理方面有着强大的功能,配合脚本使用,可以打印指定行和列。awk'NR==18{print}'data.txt。NR指定行号。
在Ubuntu下编写shell脚本读取文件
需求功能:
创建测试用例文件 text :
创建shell脚本:
运行结果:
利用 awk 'END{print NR}' [文件名] 来输出行数:
在shell脚本中添加该功能:
运行结果:
上面的shell文件只是把文件名写死在脚本中,并没有实际使用意义,所以需要编写一个指令来指定需要读取的文件,就像 vim [文件名] 一样
“$1” 代表第1个参数,也就是在 read 之后紧跟的参数,将其作为文件名传入:
将脚本移动至环境变量对应的目录中:(可以自己更改 /bin/xxx 来决定运行命令的名称,但注意不能重复)
sudo mv read /bin/read
然后添加运行权限:
sudo chmod 755 /bin/read
打开终端的目录可以是任何位置,通过以下命令即可运行shell脚本:
sudo read [文件路径]
同理,我们还可以自己为复杂指令编写shell脚本,来提高命令的使用效率,例如开关ss服务,打开锐捷客户端认证等等。