18

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

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

4

6 に答える 6

29

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

more +1 filename.ext > otherfilename.ext

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

于 2009-03-01T22:32:47.657 に答える
9

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

sed -i~ 1d target-file
于 2009-03-01T22:19:31.790 に答える
7

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

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

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

于 2009-03-01T22:26:58.793 に答える
6

Preet Sangha のソリューションの使用方法を尋ねるコメントがいくつかあることに気付きました。コメントを追加するのに十分な担当者がいないため、より完全なソリューションをここに投稿したいと思いました.

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

findstr /V /R "^$" InputFile.txt > OutputFileNameWithFirstLineRemoved.txt
于 2015-07-08T15:06:13.207 に答える
6

追加のツールを使用しない Windows の場合:

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

余分なツールは必要ありません

于 2009-03-01T22:36:40.547 に答える
3

今日も似たようなことをする必要がありましたが、これが私が思いついたものです:

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

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

于 2014-09-07T15:57:25.010 に答える