《Advanced Bash-scripting Guide》学习(六):从/etc/fstab中读行
来源:互联网 发布:数列不动点定理知乎 编辑:程序博客网 时间:2024/05/11 12:36
本文所选的例子来自于《Advanced Bash-scripting Gudie》一书,译者 杨春敏 黄毅
ABS书上的例子:
代码块和I/O重定向
#!/bin/bash#从/etc/fstab中读行File=/etc/fstab{read line1read line2} > $Fileecho "First line in $File is:"echo "$line1"echoecho "Second line in $File is:"echo "$line2"exit 0#现在,你怎么分析每行的分割域#暗示:使用awk
实践证明,当/etc/fstab文件最开始有空格或者注释的时候,打印出来的要么是空白,要么是一个#,ABS是这样提示的:Now, how do you parse the separate fields of each line?Hint: use awk, or . . .Hans-Joerg Diers suggests using the "set" Bash builtin。大意是:现在,你怎么分析每行之间的分隔域?提示:运用awk,或...Hans-Joerg Diers建议用set这个bash内建命令。
说实在的,我不明白为什么使用awk,因为awk是截取列的,现在要读取的是行,对于set,我也是知之甚少。鉴于这种情况,我将此脚本做了一定的改写,让这个脚本打印的是非空白和注释的行。也许以后,随着shell知识的不断增长,改进后的脚本势必会重新改写。也期待着那一天的到来。
一个改进的脚本
#!/bin/bash#从/etc/fstab中读取行printf "$(cat /etc/fstab | sed '/^$/d' | grep -v "^#")\n" > fileFile=/root/sh/file{read line1read line2 } < $Fileecho "First line in $File is:"echo "$line1"echoecho "Second line in $File is:"echo "$line2"echoexit 0
注意我将/etc/fstab下非空白和注释的行重定向到file文件中,再从file文件中读取。
去除空白行的几种方法:
1.grep命令
grep -v "^$" 文件名
2.sed命令
cat 文件名 | sed '/^$/d'
3.awk命令
cat 文件名 | awk '{if($0!="")print}'
cat 文件名 | awk '{if(length!=0)print $0}'
脚本运行结果
阅读全文
0 0
- 《Advanced Bash-scripting Guide》学习(六):从/etc/fstab中读行
- Advanced Bash-Scripting Guide:
- Advanced Bash-Scripting Guide
- Advanced Bash-Scripting Guide
- 《Advanced Bash-scripting Guide》学习(十一):shift的用法
- Advanced Bash-Scripting Guide 学习笔记一
- 《Advanced Bash-scripting Guide》学习(八):从一个目录移动整个目录树到另一个目录
- Advanced Bash-Scripting Guide中译版
- Advanced Bash-Scripting Guide 读书笔记
- 《Advanced Bash-scripting Guide》学习(二):测试脚本调用的参数是否正确
- 《Advanced Bash-scripting Guide》学习(三):自删除脚本和自读取内容的脚本
- 《Advanced Bash-scripting Guide》学习(四):一个显示时间日期登录用户的脚本
- 《Advanced Bash-scripting Guide》学习(五):检查一个可执行文件是否存在
- 《Advanced Bash-scripting Guide》学习(九):备份最后一天所有修改的文件
- 《Advanced Bash-scripting Guide》学习(十):利用whois查询域名信息
- 《Advanced Bash-scripting Guide》学习(十二):占位符":"及其他
- 《Advanced Bash-scripting Guide》学习(十三):引用变量的两个例子
- 《Advanced Bash-scripting Guide》学习(十四):HERE Document和cat <<EOF
- 多态、抽象类
- Java中Volatile关键字详解
- composer使用总结
- 大量机器学习(Machine Learning)&深度学习(Deep Learning)资料
- 39、不一样的C++系列--类型识别
- 《Advanced Bash-scripting Guide》学习(六):从/etc/fstab中读行
- win10系统下载文件夹变成了英文怎么办
- 使用guice进行依赖注入与模块化系统
- Linux高可用集群之keepalived详解——(1)
- 带你知道艺高国际集团——Jackson系统!
- CCF计算机视觉会议及期刊排名
- 使用SWIG来扩展Python
- Thinking in java-30 Closure and Callback闭包和回调
- 继承