shell脚本用awk修改字段的值
2014-07-12 11:01
435 查看
假如我们想修改filename文件中的一个记录中的某个字段值,比如...BillJoy 1939 SunLarryEricsson 1940 Oracle...我们想把LarryEricsson那一条记录的1940改成1950,我们可以这么做:#$1指模式匹配的字段awk '$1 ~ /LarryEricsson/{$2=1950;}1'filename 1<>filename在项目中,我们经常要编写shell脚本来编译工程。如果我们想记录工程编译的次数,我们可以用上面这个技巧来实现。现在我们要一个编译工程的脚本buildPrjxxx.sh,我们想把编译次数记录下来,我们可以单独编译次数写进一个文件中,然后每次启动buildPrjxxx.sh的时候读取文件的值然后修改。但是现在我们要想把这个值记录在buildPrjxxx.sh中,而不是写在一个单独的文件。我们可以这样写我们的buildPrjxxx.sh。
awk '$1 ~ /__BUILD_TIME__/{$2=$2+1;}1' $0 1<>$0#这里用来取出被修改的字段的值,然后对齐格式buildCount=$(awk '/^__BUILD_TIME__/ { print $2; exit 0; }' $0)if [ $buildCount -lt 10 ]thenbuildCount="000$buildCount"elif [ $buildCount -gt 10 && $buildCount -lt 100 ]thenbuildCount="00$buildCount"elif [ $buildCount -gt 100 && $buildCount -lt 1000 ]thenbuildCount="0$buildCount"fiecho "total build time: $buildCount"#you can add you code hereexit 0__BUILD_TIME__ 0OK,现在我们只要每编译buildPrjxxx.sh一次,__BUILD_TIME__都会记录下我们当前的编译次数,并且还实现了输出格式的对齐。
相关文章推荐
- shell脚本问题01--awk
- 从九九乘法口决脚本,比较awk、bash/ksh和Perl的循环控制结构[附awk\shell\Perl脚本]
- shell脚本系列-awk用法总结
- lunix下shell脚本批量获取文件,批量修改文件内容
- shell脚本自动修改linux下ifcfg-ethx文件
- 一个使用shell脚本实现的修改文件中的字符串
- 将参数传递到awk内,用shell脚本提取符合条件的行
- shell脚本自动修改IP信息
- Shell脚本学习笔记(七)--sed和awk
- shell中以-f的方式调用awk脚本
- 脚本使用(awk,shell...)
- 脚本修改sql字段长度
- shell 脚本实现的遍历目录修改子目录及其文件权限
- shell脚本:批量修改文件扩展名
- awk和sed 应用shell脚本变量
- 检查字段并排序的shell脚本
- shell脚本之批量修改文件后缀名
- 如何用Shell脚本修改crontab
- ORACLE SQL脚本能否修改字段名称?
- shell脚本学习:循序渐进之初级awk语句,until循环,test语句