标题: 如何在文本文件开头添加一行内容
[打印本页]
作者: hgx126
时间: 2009-1-27 03:00
标题: 如何在文本文件开头添加一行内容
我有多个几百个文本文件,准备在每个文件开头插入一行:
例我的其中一个文件文件为:
5471,安德刚,"1,100.00",2000-6-18,2001-4-20,2003-9-21,呆帐,损失,,210.87,4.851E+13,8.81301E+13
5471,安德刚,"9,670.00",1997-10-8,1998-9-20,2003-9-21,呆帐,损失,,4659.83,4.851E+13,8.81301E+13
5471,安德刚,"3,120.00",1998-9-23,1999-9-20,2003-9-21,呆帐,损失,,598.11,4.851E+13,8.81301E+13
……
要在开头插入一行:
机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号
如何写代码?
用sed 也行。
我在网上搜索了好久,没找到合适的代码。请大家帮忙!
作者: wxcute
时间: 2009-1-27 11:04
新文件存为 “new_原名” 格式。
@echo off
setlocal enableDelayedExpansion
set head=机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号
echo %head%>head.ini
for /f "delims=" %%i in ('dir/b *.txt') do (
set/p fh=<"%%i"
if not "!fh!"=="%head%" copy/b head.ini+"%%i" "new_%%i"
)
pause
作者: hgx126
时间: 2009-1-28 00:05
谢谢wxcute仁兄。
要是我只想在原文件上添加该行,而不是另外生成一个"new_"加原文件名的文件该如何写代码呢?
作者: zzhh612
时间: 2009-1-28 00:14
另外生成一个"new_"加原文件名的文件,生成后更改为原文件名,不就是
原文件了,只要能达目的就行,不要认死理.实在看不惯原来的,删除不就行了.
作者: hgx126
时间: 2009-1-28 00:26
Thank you!
作者: wxcute
时间: 2009-1-28 11:53
也行,把 “new_” 字符串去掉就好。
作者: ceii
时间: 2009-1-28 19:33
sed -i "1i机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号" *.txt
[
Last edited by ceii on 2009-1-28 at 19:35 ]
作者: motop
时间: 2009-1-29 13:35
好,很实用啊。
作者: hgx126
时间: 2009-1-31 02:12
[quote]Originally posted by
ceii at 2009-1-28 07:33 PM:
sed -i "1i机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号" *.txt
怎么生成一个没有扩展名的文件"sedDOSSU?"?,虽然用记事本能打开,毕竟不方便?
作者: ceii
时间: 2009-2-1 10:47
这是版本问题。
我使用的是 GNU sed version 4.0.7
作者: zhengqian529
时间: 2009-2-1 12:02
2搂得不错
但是有一个缺点:如果原TXT文件有以"机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号"的话,而且还有其他内容.
set/p fh=<"%%i"
if not "!fh!"=="%head%" copy/b head.ini+"%%i" "new_%%i"
是否还应该加上别的判断呢?
作者: samliu
时间: 2009-2-5 21:58
哦 原来还可以这样的呀
学习了
作者: bobofu
时间: 2009-7-13 07:00
@echo 机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号 >>header.txt
copy/b header.txt+detal.txt
del detal.txt
ren header.txt detal.txt