awk是linux下很有用的列编辑工具。示例如下
文件tran_map.txt内容如下
TR zhuanzhang
SA unknown
1.组织字符串。将第一列以字符串形式打印出来
awk '{ print "\""$1"\","}' tran_map.txt
"TR",
"SA",
2.形成格式化代码,将第一列值转换为第二列值;
采用文件脚本方式。脚本文件为 bat_trans.awk,内容如下
BEGIN {print "//begin map translate"}
{print "if(memcmp(strTemp, \""$1"\", 2) == 0)\r\n{\r\nmemset(strTemp, 0, sizeof(strTemp);\r\nmemcpy(strTemp, \""$2"\", sizeof(strTemp));\r\n}"}
END {print "//end map translate"}
输入命令
awk -f bat_trans.awk tran_map.txt
//begin map translate
if(memcmp(strTemp, "TR", 2) == 0)
{
memset(strTemp, 0, sizeof(strTemp);
memcpy(strTemp, "zhuanzhang", sizeof(strTemp));
}
if(memcmp(strTemp, "SA", 2) == 0)
{
memset(strTemp, 0, sizeof(strTemp);
memcpy(strTemp, "unknown", sizeof(strTemp));
}
//end map translate