标题: [文本处理] 【已解决】BAT:如何保留文本第1行与最后1行数据 [打印本页]
作者: 思想之翼 时间: 2015-3-1 01:15 标题: 【已解决】BAT:如何保留文本第1行与最后1行数据
本帖最后由 思想之翼 于 2015-3-4 09:40 编辑
D:/数据/内有若干文本,文本内数据格式为:
02
10 89
23
...
65 45 32
数据行数不定,每行数据个数不定。
欲批量保留每个文本的第1行与最后1行数据,处理后的数据覆盖原数据,文本原名称不变。
恳望得到帮助。
作者: happyxxdhaha 时间: 2015-3-1 01:41
- @echo off
- pushd d:\数据
- for /f "delims=" %%i in ('dir /a-d /b *.txt') do (
- call :sub "%%~i">$
- move $ "%%~i"
- )
- popd
- goto:eof
-
- :sub
- set/p start=<"%~1"
- for /f "usebackq delims=" %%i in ("%~1") do (
- set end=%%i
- )
- echo,%start%
- echo,%end%
复制代码
作者: 慕夜蓝化 时间: 2015-3-1 09:20
本帖最后由 慕夜蓝化 于 2015-3-1 09:34 编辑
- @echo off&setlocal enabledelayedexpansion
- for %%i in (d:\数据\*.txt) do (
- (set/p str=<"%%i"&echo,!str!
- for /f %%a in ('type "%%i"^|find /v /c ""') do (
- set/a n=%%a-1
- call :skip !n! "%%i"
- )) >%temp%\$
- move /y %temp%\$ "%%i"
- )
- pause&exit
-
- :skip
- if %1 leq 0 goto :eof
- for /f "skip=%1 tokens=1,* delims=[]" %%i in ('type "%~2"^|find /v /n ""') do (
- echo,%%j&goto :eof
- )
复制代码
作者: DAIC 时间: 2015-3-1 09:21
- sed -i -n "1p;$p" "D:\数据\*.txt"
复制代码
作者: pcl_test 时间: 2015-3-1 17:30
回复 1# 思想之翼 - gawk "NR==1;END{print}" a.txt
复制代码
作者: apang 时间: 2015-3-1 17:51
- @echo off
- pushd "D:\数据\"
- for /f "delims=" %%a in ('dir /b *.txt') do (
- for /f "usebackq delims=" %%b in ("%%a") do (
- if not defined a echo,%%b>$
- set "a=%%b"
- )
- setlocal enabledelayedexpansion
- echo,!a!>>$
- endlocal
- set "a=" & move $ "%%a"
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |