Linux下Vi替换命令用法练习

环境

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打开 www.bianceng.cn

步骤四:执行以下命令(输入命令时注 意输入冒号,退出保存输入wq,退出不保存使用q或者q!):

1 去掉所有 的问号(?)

%s/?//g

2 去掉逗号前后的所有空格

%s/[ \t]*,[ \t]*/,/g

3 实现功能

%s/\([^.]*\),\([^.]*\),\([^.]*\),\([^.]*\)/\1,\3 \4,\2/g

实现效果

时间: 2024-08-31 05:21:55

Linux下Vi替换命令用法练习的相关文章

Linux下vi替换字符命令操作实例

http://blog.csdn.net/zhouzhaoxiong1227/article/details/28657665 在Linux下的开发中,经常涉及到对文件中的字符进行处理,其中,对字符的替换操作也是非常的频繁.         本文以一个实际的文件为例,详细介绍了Linux下常用的vi替换字符命令,为相关的开发工作提供给了参考.           本文中被操作的文件为TestFile.txt,其中的内容如下:         zhou@linux:~/zhouzx/Test> c

Linux下vi替换字符命令例子

在Linux下的开发中,经常涉及到对文件中的字符进行处理,其中,对字符的替换操作也是非常的频繁. 本文以一个实际的文件为例,详细介绍了Linux下常用的vi替换字符命令,为相关的开发工作提供给了参考. 本文中被操作的文件为TestFile.txt,其中的内容如下: zhou@linux:~/zhouzx/Test> cat TestFile.txt 12345678907890 ABCDABCDEFGHIJ 12345^&*()() 98765432103210 abcdabcdefghij

linux下vi编辑器命令大全

  功能最强在的编辑器--vi vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人, 或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻. 游刃有余,因为其他几种文本处理器并非UNIX标准配备.说不定别人的Linux机器没安装joe或pico,如果您不会vi,那您可能就没辄了. vi的基本概念 基本上vi可分为三种操作状态,分别是命令模式(Command mode)

Linux下vi编辑器的命令模式和编辑模式有什么区别?

问题描述 Linux下vi编辑器的命令模式和编辑模式有什么区别? 解决方案 编辑模式下可以输入和删除文本,与 windows 的常规编辑器的行为一样.命令模式下,可以方便地进行文本操作(包括批量的文本操作).比如说,删除命令d.dw 可以删除从当前光标开始的一个单词, dd 可以删除当前光标所在的行.解决方案二:基础问题还是先去学习学习

在Linux下用 mkdir 命令来创建目录和子目录的用法_Linux

本篇文章介绍了在Linux下用 mkdir 命令来创建目录和子目录的用法,现在我们要学习在 Linux 系统下创建目录.在 Linux 下,我们可以使用 mkdir 命令.Mkdir 是"make directory" 的缩写词. mkdir 是什么呢 Mkdir 是一个用来在 Linux 系统下创建目录的命令.此命令属于内建命令. 运行 mkdir 命令 你可以在你的控制台直接键入 mkdir 来使用它. $ mkdir 默认情况下,不带任何参数运行 mkdir 命令会在当前目录下创

Linux下Vi/Vim使用笔记

Linux下Vi/Vim使用笔记 启动和关闭vim vi 打开 Vi/Vim 打开 Vi/Vim 并加载文件 <file> vi <file>  ZQ 无条件退出 :q! 无条件退出 ZZ 存盘并退出 :wq 存盘并退出 vim编辑器的三种模式:一般模式.编辑模式和命令行模式在一般模式中可以进行删除.复制和粘贴的功能,但是无法编辑文件内容. 从一般模式切换到编辑模式可以按下i.I.o.O.a.A.r.R键. 注意区分当前是INSERT还是REPLACE模式! i: 插入,从目前光标

linux 下的yum命令详解_Linux

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,而且命令简洁而又好记. yum的命令形式一般是如下:yum [options] [command] [package ...] 其中的[opt

Linux下通过script 命令记录(数据库)操作步骤

对DBA而言,经常碰到升级数据库或是apply patch,以及有些时候需要运行大量的脚本.对于这些操作我们希望现在在屏幕同时又输出的文件以备后续查询过程中曾经丢失的步骤或错误.Linux下的script命令就是解决这个问题的好帮手   1.script命令描述   复制代码 代码如下: script命令会记录所有的操作到文件同时在屏幕上输出,直到终止登陆的会话,或使用CRTL+D,或使用exit退出则停止记录. 这个命令对于数据库的升级或是重要设置的情形下使用可以用于后续查询操作成功或失败.

试试Linux下的ip命令,ifconfig已经过时了

试试Linux下的ip命令,ifconfig已经过时了 linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了.iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一. Net tools vs Iproute2 要安装ip,请点击这里下载iproute2套装工具 .不过,大多数Linux发行版已经预装了ipr