テキスト ドキュメントの内容を見て、各行の先頭にテキストを追加する簡単な方法を探しています。すべての行の先頭に同じテキストが表示されます。これを行うための簡単なスクリプトかもしれません。任意のアイデアや提案。ありがとう
3 に答える
最も簡単な方法の 1 つは、ファイルまたは stdin から読み取ることができるsed (ストリーム エディター) を使用することです。これは行ごとに行われ、ファイル全体または特定のサブ範囲のいずれかにコンテンツの変更を適用できます。これはあなたがしたいことです:
sed -i 's/^/TEXT/' FILENAME
-iオプションは、ファイルを「その場で」編集するように sed に指示します。つまり、stdout に移動するのではなく、ファイルに直接書き込まれます。元のファイルは上書きされます。元のデータを保持したい場合は、このオプションを省略し、上記のコマンドラインに> NEWFILEを追加して、出力を別のファイルにパイプします。
sedのsコマンドは検索/置換です。各行で、最初のパターンの最初の出現を 2 番目のパターンに置き換えます。最後にgを追加して、任意の行の最初のパターンのすべての出現を置き換えることができますが、行の先頭を一致させるため、ここでは特に役に立ちません。
ここでの最初のパターンは^で、行頭を意味する正規表現の予約文字です。したがって、他のテキストが表示される前に、2 番目のパターンTEXTが追加されます。
もちろん、そのように多くのファイルをバッチ処理する必要がある場合は、スクリプトから呼び出すことができます。それが役立つことを願っています。
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
かなりクロスプラットフォームで実行したい場合は、短くて単純な python スクリプトを書くことができます。
inputFile = open("fileNameInput")
outputFile = open("fileNameOutput", "w")
for inputLine in inputFile:
outputFile.write("your text" + inputLine + "\n")
inputFile.close()
outputFile.close()