|
userwww
初级用户
积分 136
发帖 57
注册 2007-9-8
状态 离线
|
『楼 主』:
[已解决]把文本里每行不足5位的编号,前面加0补够5位
文本里原内容有些行不足5位,想找个批处理把不足5位的,前面加0补足5位.如下面把左边改为右边那样子
123 >>>>> 00123
66 >>>>> 00066
12546 >>>>> 12546
99 >>>>> 00099
..... ........... .....
8 >>>>> 00008
第2,7,8,9楼的方法都可以用,谢谢
[ Last edited by userwww on 2007-9-26 at 10:45 PM ]
|
|
2007-9-26 11:58 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
2 楼』:
use sed
sed "/^$/!{s/^/00000/;s/0*\(.\{5,\}\)$/\1/}" yourdatafile.ext
|
|
2007-9-26 12:19 |
|
|
yoyodos
初级用户
积分 128
发帖 59
注册 2007-9-15
状态 离线
|
|
2007-9-26 12:23 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
4 楼』:
Quote: | Originally posted by yoyodos at 2007-9-26 12:23:
我又晕,哈哈 |
|
晕什么?
不好意思,不会用批处理写.
|
|
2007-9-26 12:25 |
|
|
userwww
初级用户
积分 136
发帖 57
注册 2007-9-8
状态 离线
|
『第
5 楼』:
谢谢版主,我试了,好象文本没反应,不知我哪里搞错了,
我是把你那行命令新建一个批处理来运行的
|
|
2007-9-26 12:37 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
6 楼』:
RE userwww:
你直接在命令行运行,需要保存文件就重定向一下。
|
|
2007-9-26 13:12 |
|
|
wudixin96
银牌会员
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
『第
7 楼』:
@echo off
for /f "delims=" %%i in (test.txt) do (
set str=%%i
call set str=0000%%str%%
call echo %%str:~-5%%>>test1.txt
)
pause
|
|
2007-9-26 13:34 |
|
|
yoyodos
初级用户
积分 128
发帖 59
注册 2007-9-15
状态 离线
|
『第
8 楼』:
@echo off
setlocal enabledelayedexpansion
cd.>new.txt
for /f "delims=" %%a in (a.txt) do (
set s=%%a
for /l %%i in (0,1,4) do (
set/a m=%%i
set "c=!s:~%%i,1!"
if "!c!"=="" (
set/a n=5-!m!
for /l %%k in (1,1,!n!) do (
set s=0!s!
)
)
)
echo !s! >> new.txt
)
pause
|
|
2007-9-26 14:30 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
9 楼』:
@echo off&setlocal EnableDelayedExpansion
for /f "delims=" %%a in (test.txt) do (
set mmm=%%a
call :start
)
pause
goto :eof
:start
for /l %%i in (0,1,10) do if "!mmm:~%%i,1!"=="" set len=%%i && goto :123
:123
if !len! leq 6 set mmm=0!mmm!
if !len! leq 6 goto start
echo !mmm!>>test2.txt
|
|
2007-9-26 15:49 |
|
|
userwww
初级用户
积分 136
发帖 57
注册 2007-9-8
状态 离线
|
『第
10 楼』:
二楼的方法可以用,原来我的机子上没有SED,找了半天终于搞清楚了
|
|
2007-9-26 18:44 |
|
|
userwww
初级用户
积分 136
发帖 57
注册 2007-9-8
状态 离线
|
『第
11 楼』:
谢谢楼上的热心人,今天看了很久关于sed的话题,经测试第2,7,8,9楼的方法都可以用,谢谢.:P
|
|
2007-9-26 22:09 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
12 楼』:
7楼的处理 如果内容超出6位 取后5位吧.
|
|
2007-9-26 23:22 |
|
|
userwww
初级用户
积分 136
发帖 57
注册 2007-9-8
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by terse at 2007-9-26 11:22 PM:
7楼的处理 如果内容超出6位 取后5位吧. |
|
如果超过5位,是取后五位
|
|
2007-9-28 20:52 |
|
|
hdzc
初级用户
积分 146
发帖 86
注册 2007-10-1
状态 离线
|
『第
14 楼』:
dddddddddddddddddd
|
|
2007-10-1 13:19 |
|