我有这样一个文件,修改文件数据:使用命令行的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
我有这样一个文件,修改文件数据:使用命令行的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
随着SED,假设文件file
:
sed 's/"/mm/;s/"//' file
随着GNU sed的:
sed -r 's/"([0-9]+)"/mm\1/' file
输出:
mm4 15356 15422 mm8 15289 15355 mm7 14145 15288 mm6 14071 14139
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
选项的后缀。
另一替代
tr -d '"' <file | sed 's/^/mm/'
mm4 15356 15422
mm8 15289 15355
mm7 14145 15288
mm6 14071 14139
PS。保留领先空间
非常感谢你! –