歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux下Vi替換命令用法練習

Linux下Vi替換命令用法練習

日期:2017/3/3 16:39:22   编辑:關於Linux

環境

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

實現效果

Copyright © Linux教程網 All Rights Reserved