2015-12-29 87 views
1

我有這樣一個文件,修改文件數據:使用命令行的Unix程序

"4" 15356 15422 
"8" 15289 15355 
"7" 14145 15288 
"6" 14071 14139 

如何使用AWK或其他慶典工具改寫這

mm4 15356 15422 
mm8 15289 15355 
mm7 14145 15288 
mm6 14071 14139 

回答

2

隨着SED,假設文件file

sed 's/"/mm/;s/"//' file 
+0

非常感謝你! –

2

隨着GNU sed的:

sed -r 's/"([0-9]+)"/mm\1/' file 

輸出:

 
mm4 15356 15422 
mm8 15289 15355 
mm7 14145 15288 
mm6 14071 14139 
2

sed是使用最簡單,最有效的工具。我會使用類似正則表達式替換命令到

sed 's/"\([0-9]*\)"/mm\1/' filename 

此搜索的雙引號中位數(零個或多個)的圖案,並用由mm之前匹配的數字替代它們。

雖然我只有GNU sed的副本,但以上版本只適用於所有版本的sed,因爲它僅使用Basic Regular Expressions as defined by POSIX


如果您使用GNU sed和想替換該文件的內容,你 可能包括-i/--in-place標誌:

sed -i.bak 's/"\([0-9]*\)"/mm\1/' filename 

該修改的filename內容作出後它的備份副本爲 filename.bak。如果您不需要備份文件,請省略-i選項的後綴。

2

另一替代

tr -d '"' <file | sed 's/^/mm/' 

mm4 15356 15422 
mm8 15289 15355 
mm7 14145 15288 
mm6 14071 14139 

PS。保留領先空間