Board logo

标题: [文本处理] [已解决]批处理如何整理这样的txt文本行? [打印本页]

作者: wh1234567    时间: 2011-4-23 22:54     标题: [已解决]批处理如何整理这样的txt文本行?

例如txt文本里内容:
白帝城、白马寺、白洋淀、白云山、包公祠、宝墨园、抱犊寨、碑林、北戴河、北海银滩、北泉、碧峰峡、避暑山庄、冰峪、兵马俑、布达拉宫、彩色沙林、苍岩山、长山、长城、长岛、长屿硐天、成吉思汗陵、成山头、垂云通、翠华山、大佛寺、大观园、大明寺、大雁塔、大昭寺、大足石刻、丹霞山、

如何用批处理将他整理成:去掉、并将每个关键词竖立排序?例如:
白帝城
白马寺
白洋淀
白云山
包公祠
宝墨园
抱犊寨
碑林
北戴河
北海银滩
北泉
碧峰峡
避暑山庄
。。。
这样的格式呢?并要求输出到另外一个文本里
作者: CrLf    时间: 2011-4-23 23:18

可以
  1. @echo off
  2. (for /f "delims=" %%a in (1.txt) do (
  3. set "str=%%a"
  4. setlocal enabledelayedexpansion
  5. for %%b in ("!str:、=" "!") do endlocal&echo;%%~b
  6. ))>2.txt
复制代码
或者
  1. sed "s/、/\n/g" 1.txt
复制代码

作者: Hello123World    时间: 2011-4-24 11:33

以下代码是从百度知道转来的,lz在知道提问的问题解决了(刚好看到这一问,回答不出来)。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (123.txt) do (
  3. set d=%%i&call :mnm)
  4. type temp.tmp>123.txt
  5. del/q/f temp.tmp&pause&exit
  6. :mnm
  7. for /f "delims=、 tokens=1,*" %%a in ("!d!") do (
  8. echo %%a>>temp.tmp
  9. set d=%%b
  10. if not "!d!"=="" goto :mnm)
复制代码

作者: Hello123World    时间: 2011-4-24 11:40

2# zm900612
这种思路不得不赞
作者: wh1234567    时间: 2011-4-25 00:14

2# zm900612

非常感谢,代码很精简直观,问题已解决
作者: wh1234567    时间: 2011-4-25 00:18

2# zm900612
要是删除多个字符的话不知道如何添加?
作者: Batcher    时间: 2011-4-25 11:28

6# wh1234567
  1. sed -i "s/、\|,\|。/\n/g" 1.txt
复制代码





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