shell替换功能
来源:互联网 发布:javascript创建表格 编辑:程序博客网 时间:2024/05/19 06:17
据了解,替换功能有sed,sub,gsub,gensub四种,下面分别讲解其应用方式。
数据源如下:
如果我想替换除第一列外其他所有列中的3为字符A:
sed: cat test8.txt | sed 's/\(^[^\t]*\t\)3/\1A/g'
此处是OK的,但是如果换为1,就出问题了;cat test8.txt | sed 's/\(^[^\t]*\t\)*1/\1A/g';此处第一列中的1也被替换。
根据高手指点,此处用gensub做固定列以外的字符替换很OK。
gensub:cat test8.txt | awk '{printf $1" ";for(i=2;i<NF+1;i++)printf gensub(/1/,"50","g",$i)" ";print c}'
这里面有个很有意思的细节,print c 这个起到了换行的作用,而且C换成其他的字符也是同样的效果!
总结:sed在简单的全局正则替换上有优势,而gensub在部分列的局部替换有优势。
0 0
- shell替换功能
- Shell替换
- Shell替换
- Shell替换
- shell替换
- Shell 学习8 - Shell 替换
- SHELL 文本替换
- SHELL的字符替换
- Bash Shell命令行替换
- shell 文本替换命令
- shell 变量替换
- shell 替换文件内容
- shell变量替换
- shell中替换
- shell中的命令替换
- shell 批量查找替换
- Linux Shell参数替换
- shell参数替换之##%%
- 电脑中为何有些文件无法删除
- 推荐!国外程序员整理的系统管理员资源大全
- 程序员之路——如何学习C语言并精通C语言
- How to program the QBoard1, 2 and 3
- java内存分析
- shell替换功能
- 作为
- Python之迭代器(iterator)
- 程序员健康小提示--设置健康的myeclipse工作区背景色
- 使用PostSharp 在.NET 平台上实现 AOP
- 【Java】利用synchronized(this)完成线程的临界区
- java—面向对象集合类Map
- codeforces Riding in a Lift
- 【数值分析】误差的分析与减少及Matlab解线性方程的四种方法