Board logo

标题: [文本处理] [已解决]批处理怎样删除/去掉txt文本每行最后一个字符? [打印本页]

作者: daohe    时间: 2010-4-5 01:12     标题: [已解决]批处理怎样删除/去掉txt文本每行最后一个字符?

本帖最后由 pcl_test 于 2017-6-7 08:10 编辑

如题:
a.txt内容
aaa-
aaa-bbb-

处理结果
b.txt
aaa
aaa-bbb

[ 本帖最后由 daohe 于 2010-4-5 22:37 编辑 ]
作者: sgaizxt001    时间: 2010-4-5 05:50

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (a.txt) do (
  4. set str=%%i
  5. set str=!str~0,-1!
  6. call echo %%str%% >>b.txt
  7. )
复制代码

作者: js588    时间: 2010-4-5 07:08

请问tokens=delims 是什么意思哇
作者: sgaizxt001    时间: 2010-4-5 09:02

书写错误,没啥意思
嘿嘿
作者: bat007    时间: 2010-4-5 10:16

  1. sed "s/.$//" a.txt >b.txt
复制代码

作者: daohe    时间: 2010-4-5 15:37     标题: 回复 2楼 的帖子

2楼测试结果

b.txt
ECHO 处于关闭状态。
ECHO 处于关闭状态。
作者: daohe    时间: 2010-4-5 15:39     标题: 回复 5楼 的帖子

5楼测试结果

功能实现

b,txt首行出现
Invalid keyboard code specified
作者: hanyeguxing    时间: 2010-4-5 15:52

原帖由 daohe 于 2010-4-5 15:37 发表
2楼测试结果

b.txt
ECHO 处于关闭状态。
ECHO 处于关闭状态。

2楼的代码少打了个冒号

在文本中不含敏感字符的情况下,可以:
  1. @echo off
  2. for /f "delims=" %%i in (a.txt) do set s=%%i&>>b.txt call echo %%s:~0,-1%%
复制代码

作者: GNU    时间: 2010-4-5 16:14

  1. sed -i "s/.$//" a.txt
复制代码





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