标题: [文本处理] [已解决]批处理如何提取文本中特定的字符串来替换掉文本中指定位置的多个字符串 [打印本页]
作者: luke2 时间: 2016-6-27 22:36 标题: [已解决]批处理如何提取文本中特定的字符串来替换掉文本中指定位置的多个字符串
本帖最后由 pcl_test 于 2016-6-28 23:29 编辑
============================================================================
ICOS Bga INSPECTION - BATCH REPORT
-
Start : 5/3/2016 2:24:18 AM Version : 13
-
Batch Name : 600001164618
Batch Spec. : Skylake2+2LTH Lot No. : 600001164618
……
-
……
1| 1| 1| 1|A4 200|HW300 -107|EW157 93| 200| | | |X 200|..
1| 1| 2| 2|A4 127|HW4 -76|DD206 51| 127| | | |X 127|..
……
机台产生很多txt文件,表头都是固定格式,求批量处理把A4替换成Batch Name 后面那一串数字, 如替换后变成下面的效果。
============================================================================
ICOS Bga INSPECTION - BATCH REPORT
-
Start : 5/3/2016 2:24:18 AM Version : 13
-
Batch Name : 600001164618
Batch Spec. : Skylake2+2LTH Lot No. : 600001164618
……
-
……
1| 1| 1| 1|600001164618 200|HW300 -107|EW157 93| 200| | | |X 200|..
1| 1| 2| 2|600001164618 127|HW4 -76|DD206 51| 127| | | |X 127|..
……
作者: luke2 时间: 2016-6-28 21:40
gawk "/^Batch Name.+: [0-9]+$/ { replacement = $4 } /[0-9]\|A4/ { sub(\"A4\", replacement) } { print }" input.txt >output.txt
感谢群里的“局外人”代码和他的解说,谢谢,也谢谢大家!
作者: pcl_test 时间: 2016-6-28 23:18
本帖最后由 pcl_test 于 2016-6-29 00:56 编辑
- //&cls&more +5 "%~f0"|cscript -nologo -e:jscript "%~f0"&pause&exit
- var txt = WSH.StdIn.ReadAll();
- var str = txt.match(/\s*?Batch\s*?Name\s*?:[ \t]*([^\r\n]+)/);
- WSH.echo(txt.replace(/([\r\n]([^\|\r\n]+?\|){4})A4/g, '$1'+str[1]));
- /*举个栗子
- ============================================================================
- ICOS Bga INSPECTION - BATCH REPORT
- -
- Start : 5/3/2016 2:24:18 AM Version : 13
- -
- Batch Name : 600001164618
- Batch Spec. : Skylake2+2LTH Lot No. : 600001164618
- ……
- -
- ……
- 1| 1| 1| 1|A4 200|HW300 -107|EW157 93| 200| | | |X 200|..
- 1| 1| 2| 2|A4 127|HW4 -76|DD206 51| 127| | | |X 127|..
- ……
- */
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |