Board logo

标题: [文本处理] [已解决]文本批量刪行、替换及改扩展名的批处理 [打印本页]

作者: leo1984    时间: 2009-10-24 07:23     标题: [已解决]文本批量刪行、替换及改扩展名的批处理

你好,各位地球上難得的熱心朋友

請問我有大量的文本,想進行三項的處理:

1:刪除每個文本的第一行

2:把每個<>的字符替換

3:把每個文本的擴展名改成.txt

請問該如何作到呢,十分感謝

[ 本帖最后由 leo1984 于 2009-10-24 11:50 编辑 ]
作者: asnahu    时间: 2009-10-24 08:35

有特殊字符建议用SED,最后一个问题没看懂,是删除文件名只保留扩展名?

  1. @echo off
  2. for /f "delims=" %%i in ('dir /s/b *.txt') do (
  3. sed "1d; s/<>/\/\//g" "%%~i" > "%%~xi"
  4. )
  5. exit
复制代码

作者: leo1984    时间: 2009-10-24 08:41

原帖由 asnahu 于 2009-10-24 08:35 发表
有特殊字符建议用SED,最后一个问题没看懂,是删除文件名只保留扩展名?

@echo off
for /f "delims=" %%i in ('dir /s/b *.txt') do (
                sed "1d; s//\/\//g" "%%~i" > "%%~xi"
                )
exit


扩展名是什麼@@

應該就是這個沒錯

我要把.cgi改成.txt的扩展名

非常感謝你

謝謝!
作者: zqz0012005    时间: 2009-10-24 08:41

>你好,各位地球上難得的熱心朋友
===================================
楼主难道不是地球上的?
作者: leo1984    时间: 2009-10-24 08:43

原帖由 zqz0012005 于 2009-10-24 08:41 发表
>你好,各位地球上難得的熱心朋友
===================================
楼主难道不是地球上的?


這是個好問題

我是住地球下的

反正地球在宇宙中沒分上下@@

但是如果你要分地球表面或內部...

那又是一回事了....
作者: asnahu    时间: 2009-10-24 08:54

一看到你的问题就知道比较麻烦,果不其然。问题表述清楚真的很难吗?

  1. @echo off
  2. for /f "delims=" %%i in ('dir /s/b *.cgi') do (
  3. sed "1d; s/<>/\/\//g" "%%~i" > "%%~dpni.txt"
  4. )
  5. exit
复制代码

作者: leo1984    时间: 2009-10-24 08:57

原帖由 asnahu 于 2009-10-24 08:35 发表
有特殊字符建议用SED,最后一个问题没看懂,是删除文件名只保留扩展名?

@echo off
for /f "delims=" %%i in ('dir /s/b *.txt') do (
                sed "1d; s//\/\//g" "%%~i" > "%%~xi"
                )
exit


我剛試了一下~~您的代碼生成了一個叫.txt文本

而我的那些文本完全沒有更改

請問是@@?

謝謝
作者: leo1984    时间: 2009-10-24 09:02

原帖由 asnahu 于 2009-10-24 08:35 发表
有特殊字符建议用SED,最后一个问题没看懂,是删除文件名只保留扩展名?

@echo off
for /f "delims=" %%i in ('dir /s/b *.txt') do (
                sed "1d; s//\/\//g" "%%~i" > "%%~xi"
                )
exit


試過您的代碼成功了

但是為何每個文本的第一行都留下這段文字呢@@?

Invalid keyboard code specified

很抱歉,有些用語兩岸不同

我試著學習

台灣: 檔名   
中國:文件名

台灣:副檔名
中國:擴展名

台灣:文字檔
中國:文本

台灣:字元
中國:字符
作者: youxi01    时间: 2009-10-24 09:06     标题: 回复 8楼 的帖子

还忘了提醒楼主,您楼上的帖子里还有些词语表述不清:

台湾应为中国台湾
中国应为中国大陆
作者: asnahu    时间: 2009-10-24 10:40     标题: 回复 8楼 的帖子

很抱歉,本机测试并未出现你说的问题,请自行检查你的输入。

另本机SED版本为:4.2。下载:
http://gnuwin32.sourceforge.net/packages/sed.htm
作者: leo1984    时间: 2009-10-24 10:51

原帖由 youxi01 于 2009-10-24 09:06 发表
还忘了提醒楼主,您楼上的帖子里还有些词语表述不清:

台湾应为中国台湾
中国应为中国大陆


這您倒是分的很清楚啊@@
作者: leo1984    时间: 2009-10-24 10:53

原帖由 asnahu 于 2009-10-24 10:40 发表
很抱歉,本机测试并未出现你说的问题,请自行检查你的输入。

另本机SED版本为:4.2。下载:
http://gnuwin32.sourceforge.net/packages/sed.htm


我將您的代碼改成如下
  1. @echo off
  2. for /f "delims=" %%i in ('dir /s/b *.cgi') do (
  3.         sed "1d; s/<>/∥/g" "%%~i" > "%%~dpni.txt"
  4. )
  5. exit
复制代码
會不會是因為改成這個∥分隔符的原因呢@@

謝謝

4.2版本我有下載了

還是一樣><
作者: asnahu    时间: 2009-10-24 11:29     标题: 回复 12楼 的帖子

应该对 / 进行转义,否则命令错误,所以你的更改是不正确的。另可以参考一下SED Manual以获得相关支持。
作者: leo1984    时间: 2009-10-24 11:39

剛反覆開機測試,已經沒問題了

可能剛才我電腦出問題

造成你的困擾非常抱歉

感謝asnahu幫忙




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