web-dev-qa-db-ja.com

テキストファイルの最初の行を削除します

テキストファイルの最初の行を削除するcmdスクリプトが必要です。シナリオは次のとおりです。私は毎日FTPからtxtファイルを取得しますが、問題は、ファイルの上部に空白行があり、次にファイルのヘッダーが付いていることです。そのファイルをAccessテーブルに自動的にインポートしているので、その空白行が問題の原因になっています。

そのため、空白行を削除してファイルを保存するスクリプトが必要です。

16
Samar

Windows /コマンドプロンプト:

more +1 filename.ext > otherfilename.ext

これは問題なく機能しているようですが、タブ文字も複数のスペースに変換されているようです。postgresにインポートする前に、タブ区切りファイルの最初の行を削除する必要がありました。タブからスペースへの自動変換が原因で失敗しました...

26
Guido Domenici

プラットフォームを指定していません。 * NIX環境(およびWindows + Cygwin)でこれを行う方法は次のとおりです。

sed -i~ 1d target-file
7
Adam Rosenfield

最初の行を削除するには、

tail -n +2 source-file > target-file

Windowsでこれが必要な場合は、gnuutilsをダウンロードしてtailコマンドを取得します。 +2は「2行目から開始」を意味します。

7
Renze de Waal

追加のツールがないWindowsの場合:

findstr /V /R "^$" filename.whatever

追加のツールは必要ありません

5
Preet Sangha

PreetSanghaのソリューションの使い方を尋ねるコメントに気づきました。コメントを追加するのに十分な担当者がいないため、ここにもっと完全な解決策を投稿したいと思いました。

PreetSanghaのソリューションは次のように使用できます。このスクリプトは、入力ファイルの最初の行なしで新しいテキストファイルを作成します。

findstr /V /R "^$" InputFile.txt > OutputFileNameWithFirstLineRemoved.txt
5
Nick Painter

私は今日同様のことをする必要がありました、そしてこれは私が思いついたものでした:

FOR /F "tokens=* skip=1" %A IN ('type "input_file.ext"') DO @echo %A>>"output_file.ext"

これには、タブ文字が保持されるという点でmore +1ソリューションよりも優れています。ただし、大きなファイルでは、この方法は他の方法よりもはるかに遅くなります。また、先頭のスペースは左にトリミングされますが、問題がある場合とない場合があります。

1
Jimadine