2012-07-24 57 views
1

我只是寻找一种快速方法来查看文本文档的内容,然后将文本添加到每行的开头。每一行将在开始时获得相同的文本。也许一个简单的脚本来做到这一点。任何想法或建议。谢谢脚本查看文本文档的内容并将文本添加到每行的开头

+0

请多一点信息。你的脚本是什么意思?这是一个bash,你有unix binutils可用于脚本?它应该与python/php/perl交叉平台吗? – inVader 2012-07-24 15:31:29

+0

我有一个包含数百行的文本文件。我需要在每行的开头插入文本。试图找出将文本添加到文本文档中的每一行而不必手动执行每行的方法。 – 2012-07-24 15:35:35

+0

下面的答案可以帮助你吗?如果不是,你在运行什么操作系统,你有什么工具可用? SED应该在大多数Linux发行版中都是标准的,但你也可以在Win上获得它。 – inVader 2012-07-24 15:46:47

回答

2

其中一个easist方式将使用sed(流编辑器),它可以从文件或标准输入读取。它在逐行的基础上进行,可以对整个文件或特定的子范围应用内容修改。这是你想要做什么:

sed -i 's/^/TEXT/' FILENAME 

-i选项告诉sed编辑“到位”的文件,这意味着它的直接写入文件,而不是去到stdout。原始文件被覆盖。如果您想保留原始数据,只需省略此选项,并通过将> NEWFILE添加到上面的命令行,将输出传输到另一个文件。

s sed中的命令是搜索/替换。它将在每一行中用第二种模式替换第一种模式的第一次出现。您可以在末尾添加g以替换任何行中的第一个模式的每个出现,但由于您匹配行的开头,因此这里并不是特别有用。

这里的第一个模式是^这是在正则表达式中表示行开头的保留字符。所以它会在出现任何其他文字之前添加第二个图案TEXT

当然,如果你必须以这种方式批量处理许多文件,你可以从脚本中调用它。希望有所帮助。

0

如果你想这样做的公平交叉平台,你可以写一个简短的Python脚本。

inputFile = open("fileNameInput") 
outputFile = open("fileNameOutput", "w") 

for inputLine in inputFile: 
    outputFile.write("your text" + inputLine + "\n") 

inputFile.close() 
outputFile.close() 
0

也可以在VB脚本中轻松完成。如果你正在寻找一个本地Windows解决方案,使用这个小脚本片段:

Set FSO = CreateObject("Scripting.FileSystemObject") 

Set inputFile = FSO.OpenTextFile("inputFilePath", ForReading) 
Set outputFile = FSO.OpenTextFile("outputFilePath", ForWriting) 

Do Until inputFile.AtEndOfStream 

     outputFile.Write("Your Text" & inputFile.ReadLine) 

Loop 

inputFile.Close 
outputFile.Close