环境
RedHat Linux 9 + VWWare 8.0 + SSH 3.2.9
问题
假设有一个CSV(comma separated value)文件,里面有一些我们需要的信息,但是格式却有问题,目前数据的列顺序是:
姓名,公司名,州名缩写,邮政编码,现在我们希望讲这些数据重新组 织,以便在我们的某个软件中使用,
需要的格式为:姓名,州名缩写-邮政编码,公司名。
也就是说,我们要调整列顺序,还要合并两个列来构成一个新列。另外, 我们的软件不能接受逗号前后面有任何空格(包括空格和制表符)所
以我们还必须要去掉逗号前后的所有空格。
原文件是这样的:
Bill Jones,? ? ?HI-TEK Corporation ,? CA, 95011
Sharon Lee Smith,? Design Works Incorporated,? CA, 95012
B. Amos? ?,? Hill Street Cafe,? CA, 95013
Alexander Weatherworth,? The Crafts Store,? CA, 95014
我们希望把它变成这个样子:
Bill Jones,CA 95011,HI-TEK Corporation
Sharon Lee Smith,CA 95012,Design Works Incorporated
B. Amos,CA 95013,Hill Street Cafe
Alexander Weatherworth,CA 95014,The Crafts Store
解决
步骤一:将源文件保存成文本文档,如test.txt
步骤二:将test.txt上传到Linux中,这里可以使用SSH的文件上传功能。
步骤三:将test.txt用vi打开
步骤四:执行以下命令(输入命令时注意输入冒号,退出保存输入wq,退出不保存使用q或者q!):
1 去掉所有的问号(?)
%s/?//g
2 去掉逗号前后的所有空格
%s/[ \t]*,[ \t]*/,/g
3 实现功能
%s/\([^.]*\),\([^.]*\),\([^.]*\),\([^.]*\)/\1,\3 \4,\2/g
实现效果
分享到:
相关推荐
vi 常用命令 unix vi 常用命令 vi 替换命令 unix vi 命令 vi 命令模式 绝对的有用!
VI高级命令用法,主要介绍高级替换功能。
linuxvi替换命令借鉴.pdf
个人整理一下日常工作中常用的vi命令,帮忙大家快速入门。 请准备好你的手指!
详解linux vi命令用法
Vi命令详解Vi命令详解 Vi命令详解 Vi命令详解
vi命令vi命令vi命令vi命令vi命令vi命令vi命令vi命令vi命令vi命令
Vi 是Unix世界里极为普遍的全屏幕文本编辑器,VIM是它的改进版本Vi IMproved的简称。几乎可以说任何一台Unix机器都会提供这套软件。Linux当然也有,它的 vi 其实是 elvis(版权问题),不过它们都差不多。熟悉 DOS ...
VI高级命令集锦
VI常用命令及快捷键 VI常用命令及快捷键
vi常用编辑命令整理,可做速查手册使用,目录如下: 重复执行命令 vi命令使用的一些选项及含义 光标移动 屏幕翻滚类命令 插入文本 特殊字符输入 删除 复制 粘贴 替换 文件 在多个文件之间切换 查找 选项设置
VI 命令一览表,有详细的VI命令的用法及案例,希望能给大家提供帮助
VI高级命令集锦详细介绍vi编辑器的使用
linux vi 命令大全 常用vi 命令 不常用vi命令
Vi命令集宝典大全Vi命令集宝典大全Vi命令集宝典大全Vi命令集宝典大全Vi命令集宝典大全Vi命令集宝典大全Vi命令集宝典大全
vi 快捷命令的总结,一目了然 :x:保存当前文件并退出 :q:退出vi :q!:不保存文件并退出vi :!command:执行shell命令command
vi的命令壁纸,包含了vi的所有命令,作为壁纸可以很快查到需要的命令
个人整理而成的Vi常用命令手册pdf格式,很合适随时查阅,包括了常用的Vi基本命令,忘记的时候拿出来看看很不错,和大家分享一下
文本文件的vi指令列表,可以简单... R: 进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。 s: 删除光标所在字元,并进入输入模式。 S: 删除光标所在的列,并进入输入模式。
vi命令大全vi命令大全vi命令大全vi命令大全vi命令大全