2015-12-29 116 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。保留领先空间