Board logo

标题: [文本处理] [已解决]批处理如何把中文字字符和英文字符互换位置? [打印本页]

作者: hzusb    时间: 2014-7-27 19:11     标题: [已解决]批处理如何把中文字字符和英文字符互换位置?

现状,文档中的格式:
汉字hanzi
汉字hanzi
汉字hanzi
汉字hanzi

我需要格式

hanzi 汉字
hanzi 汉字
hanzi 汉字
hanzi 汉字

说明
“汉字”部分是中文字(字数不等),“hanzi”部分是英文字(字数不等),我需把它们换个顺序,并且中间有个空格,由于量太大,特来求助大神给个方法,谢谢!
作者: CrLf    时间: 2014-7-27 20:02

本帖最后由 CrLf 于 2014-7-27 20:27 编辑

最合适的莫过于 sed:
  1. @sed -r "s/([^a-z]*)([a-z]*)/\2 \1/i" a.txt >b.txt
复制代码

作者: hzusb    时间: 2014-7-27 20:23

回复 2# CrLf


    输出文件是空的?sed是4.x的,也换过版本
作者: CrLf    时间: 2014-7-27 20:25

来个纯批
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (a.txt) do (
  3. set "str=%%a"
  4. for /f "delims=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" %%b in ("%%a") do echo !str:%%b=! %%b
  5. ))>b.txt
  6. pause
复制代码

作者: CrLf    时间: 2014-7-27 20:27

回复 3# hzusb


    忘加 -r,已修改
作者: hzusb    时间: 2014-7-27 21:04

回复 5# CrLf


        羡慕你们,都是高手。解决我的问题了!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2