Chinaunix
标题:
写一个脚本 将所有程序中带有日文双引号的字符串全部提取,并记录原来位置以及字符大
[打印本页]
作者:
GuoPC1222
时间:
2013-08-06 11:05
标题:
写一个脚本 将所有程序中带有日文双引号的字符串全部提取,并记录原来位置以及字符大
如
#define STR_EQUIPCHIRA2 "チラー設備異常(軽度) "
#define STR_EQUIPAIR1 "空調設備異常(重度) "
#define STR_EQUIPAIR2 "空調設備異常(軽度) "
#define STR_EQUIPPWR1 "電源設備異常(重度) "
#define STR_EQUIPPWR2 "電源設備異常(軽度) "
背景介绍:
原来所有文字编码格式是euc-jp,现在全部改成了UTF-8,原来设置的数组空间不够,现在要改一下分配空间,所以要先找出所有类似"電源設備異常(軽度) "字符串,求指点。
作者:
GuoPC1222
时间:
2013-08-06 11:07
或者有什么好的软件 都可以
作者:
Shell_HAT
时间:
2013-08-06 11:10
awk '/#define/{print $3}' urfile
复制代码
作者:
HH106
时间:
2013-08-06 11:24
回复
1#
GuoPC1222
记录原来位置是什么意思,行数? 列数?
作者:
GuoPC1222
时间:
2013-08-06 11:26
恩,是的,否则即使找出来了也不好修改。求指点,越详细越好。
回复
4#
HH106
作者:
Shell_HAT
时间:
2013-08-06 11:27
回复
5#
GuoPC1222
awk '/#define/{print NR,$3}' urfile
复制代码
作者:
GuoPC1222
时间:
2013-08-06 11:29
回复
6#
Shell_HAT
您好,有几百个文件,这个urfile 怎么搞呢
作者:
GuoPC1222
时间:
2013-08-06 11:32
回复
6#
Shell_HAT
还有一点要请教前辈,$3 这里的字符串不固定,只统计双引号里面是日文的字符串,$3怎么定义合适
作者:
dn833
时间:
2013-08-06 11:37
awk '/#define/{print NR,$3}' *
复制代码
只要在一个目录里通吃
作者:
Shell_HAT
时间:
2013-08-06 11:41
回复
8#
GuoPC1222
请把原始文件压缩一下传上来看看,大家才好总结规律。
你最初的想法不一定适用,比如:
"重度"
你说它是日文?
作者:
GuoPC1222
时间:
2013-08-06 13:43
本帖最后由 GuoPC1222 于 2013-08-06 14:19 编辑
[url=forum.php?mod=redirect&goto=findpost&pid=&
sslb.pdf
(403.73 KB, 下载次数: 1)
2013-08-06 13:39 上传
点击文件名下载附件
文件
文件上传了,类似文件几百个,在不同的文件夹下,现在是想把带“日文”的字符串提取出来,然后记录在原始文件位置,那个文件,第几行。还有一点有的可能在注释里有“日文”,这个要过滤掉,没写过脚本,突然来了个任务 ,求指点
作者:
rdcwayx
时间:
2013-08-06 13:51
源文件就是PDF 文件吗? 最好把原本的格式直接上传。
作者:
GuoPC1222
时间:
2013-08-06 14:00
回复
12#
rdcwayx
源文件
作者:
GuoPC1222
时间:
2013-08-06 14:01
SSlib.rar
(5.9 KB, 下载次数: 3)
2013-08-06 14:00 上传
点击文件名下载附件
源文件
回复
12#
rdcwayx
刚才没传好,请指点
作者:
rdcwayx
时间:
2013-08-06 14:04
本帖最后由 rdcwayx 于 2013-08-06 16:05 编辑
给你个提示
/*
* SSU関係
*/
/*デフォルト名 */
/* ---- SSIsSsuPower----*/
#define STR_SSUPWROFF "電源切断 電源切断 "
#define STR_SSUPWRON "電源投入 電源投入 "
#define STR_SSUPWRSEQ "電源制御中 "
#define STR_SSUPWRALRM1 "電源アラーム 1 "
#define STR_SSUPWRALRM2 "電源アラーム 2 "
#define STR_SSUPWRPATHE "電源制御パス異常 "
#define STR_SSUPWRSCCIERR "SCCI 制御部異常 "
复制代码
od -c urfile
0000000 / * \n * S S U 351 226 242 344 277 202 \n *
0000020 / \n / * 343 203 207 343 203 225 343 202 251 343 203 253
0000040 343 203 210 345 220 215 * / \n / * - - -
0000060 - S S I s S s u P o w e r - -
0000100 - - * / \n # d e f i n e S T R
0000120 _ S S U P W R O F F " 351 233 273 346
0000140 272 220 345 210 207 346 226 255 351 233 273 346 272 220 345
0000160 210 207 346 226 255 " \n # d e f i n e
0000200 S T R _ S S U P W R O N " 351 233
0000220 273 346 272 220 346 212 225 345 205 245 351 233 273 346 272
0000240 220 346 212 225 345 205 245 " \n # d e f i n
0000260 e S T R _ S S U P W R S E Q
0000300 " 351 233 273 346 272 220 345 210 266 345 276 241 344 270 255
0000320 " \n # d e f i n e S T R _ S
0000340 S U P W R A L R M 1 " 351 233 273 346
0000360 272 220 343 202 242 343 203 251 343 203 274 343 203 240 1
0000400 " \n # d e f i n e S T R _ S
0000420 S U P W R A L R M 2 " 351 233 273 346
0000440 272 220 343 202 242 343 203 251 343 203 274 343 203 240 2
0000460 " \n # d e f i n e S T R _ S
0000500 S U P W R P A T H E " 351 233 273 346
0000520 272 220 345 210 266 345 276 241 343 203 221 343 202 271 347 225
0000540 260 345 270 270 " \n # d e f i n e S
0000560 T R _ S S U P W R S C C I E R R
0000600 " S C C I 345 210 266 345 276 241 351 203 250
0000620 347 225 260 345 270 270 " \n
0000631
复制代码
这个针对所有的双字节字符,只要有字符是三位数的,如果你的文件里只是日文的话,那就可以确定了。
http://bbs.chinaunix.net/forum.p ... 9&fromuid=28783
作者:
rdcwayx
时间:
2013-08-06 14:08
确定后,写个脚本定位输出一下,思路大体就是这样。
作者:
GuoPC1222
时间:
2013-08-06 14:10
回复
15#
rdcwayx
谢谢 了
作者:
rdcwayx
时间:
2013-08-06 14:15
试了一下你新上传的.h 文件,确实可以,判断的话,可能要考虑 >128 的才是双字节字符。
作者:
zxd_echo
时间:
2013-08-06 16:42
回复
14#
GuoPC1222
用你的文件试了一下
find SSlib/ -type f -print0 | "xargs" -0 grep -nH "STR_"| grep define | awk -F '[: \t"]+' '{print $1,$2,$4"\t"$(NF-1)}'
输出大概是这样的,看看是否要这效果:
SSlib/SSlib.h 112 STR_PWROFF 電源切断
SSlib/SSlib.h 113 STR_PWRON 電源投入
SSlib/SSlib.h 114 STR_PWRSEQ 電源制御中
SSlib/SSlib.h 115 STR_PWRALRM1 電源アラーム1
SSlib/SSlib.h 116 STR_PWRALRM2 電源アラーム2
SSlib/SSlib.h 117 STR_PWRPATHE 電源制御パス異常
SSlib/SSlib.h 118 STR_PWRSCCIERR SCCI制御部異常
SSlib/SSlib.h 121 STR_MAINT 保守中
SSlib/SSlib.h 122 STR_ACTMAINT 活性保守中
SSlib/SSlib.h 123 STR_OFFLINE オフライン
SSlib/SSlib.h 124 STR_STOP 停止
SSlib/SSlib.h 125 STR_RUN 動作中
SSlib/SSlib.h 126 STR_IPL_EXE IPL実行中
SSlib/SSlib.h 127 STR_IPL_COMP IPL完了
SSlib/SSlib.h 128 STR_IPL_FAIL IPL失敗
SSlib/SSlib.h 129 STR_IMPL_FAIL IMPL失敗
SSlib/SSlib.h 130 STR_SYSDOWN システムダウン
SSlib/SSlib.h 131 STR_CHKSTOP チェックストップ
SSlib/SSlib.h 132 STR_SVPPATHE SVP通信異常
SSlib/SSlib.h 133 STR_DEGRAD 縮退運転中
SSlib/SSlib.h 134 STR_OPCALL1 オペコール1
SSlib/SSlib.h 135 STR_OPCALL2 オペコール2
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2