テキストファイルの最初の行を削除するcmdスクリプトが必要です。シナリオは次のとおりです。私は毎日FTPからtxtファイルを取得しますが、問題は、ファイルの先頭に空白行があり、次にファイルのヘッダーが付いていることです。そのファイルをアクセステーブルに自動的にインポートしているので、その空白行が問題を引き起こしています。
したがって、空白行を削除してファイルを保存するスクリプトが必要です。
テキストファイルの最初の行を削除するcmdスクリプトが必要です。シナリオは次のとおりです。私は毎日FTPからtxtファイルを取得しますが、問題は、ファイルの先頭に空白行があり、次にファイルのヘッダーが付いていることです。そのファイルをアクセステーブルに自動的にインポートしているので、その空白行が問題を引き起こしています。
したがって、空白行を削除してファイルを保存するスクリプトが必要です。
Windows /コマンドプロンプト:
more +1 filename.ext > otherfilename.ext
これは問題なく機能しているようですが、タブ文字も複数のスペースに変換されるようです。postgresにインポートする前に、タブ区切りファイルの最初の行を削除する必要がありました。タブからスペースへの自動変換が原因で失敗しました...
プラットフォームを指定していません。* NIX環境(およびWindows + Cygwin)でこれを行う方法は次のとおりです。
sed -i~ 1d target-file
最初の行を削除するには、
tail -n +2 source-file > target-file
Windowsでこれが必要な場合は、gnuutilsをダウンロードしてtailコマンドを取得します。+2は、「2行目から開始」を意味します。
Preet Sangha のソリューションの使用方法を尋ねるコメントがいくつかあることに気付きました。コメントを追加するのに十分な担当者がいないため、より完全なソリューションをここに投稿したいと思いました.
Preet Sangha のソリューションは次のように使用できます。このスクリプトは、入力ファイルの最初の行のない新しいテキスト ファイルを作成します。
findstr /V /R "^$" InputFile.txt > OutputFileNameWithFirstLineRemoved.txt
追加のツールを使用しない Windows の場合:
findstr /V /R "^$" filename.whatever
余分なツールは必要ありません
今日も似たようなことをする必要がありましたが、これが私が思いついたものです:
FOR /F "tokens=* skip=1" %A IN ('type "input_file.ext"') DO @echo %A>>"output_file.ext"
more +1
これには、タブ文字が保持されるという点で、ソリューションよりも利点があります。ただし、大きなファイルでは、この方法は他の方法よりもはるかに遅くなります。また、先頭のスペースは左トリミングされますが、これは問題になる場合とそうでない場合があります。