テキストファイルの最初の行を削除するcmdスクリプトが必要です。シナリオは次のとおりです。私は毎日FTPからtxtファイルを取得しますが、問題は、ファイルの上部に空白行があり、次にファイルのヘッダーが付いていることです。そのファイルをAccessテーブルに自動的にインポートしているので、その空白行が問題の原因になっています。
そのため、空白行を削除してファイルを保存するスクリプトが必要です。
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行目から開始」を意味します。
追加のツールがないWindowsの場合:
findstr /V /R "^$" filename.whatever
追加のツールは必要ありません
PreetSanghaのソリューションの使い方を尋ねるコメントに気づきました。コメントを追加するのに十分な担当者がいないため、ここにもっと完全な解決策を投稿したいと思いました。
PreetSanghaのソリューションは次のように使用できます。このスクリプトは、入力ファイルの最初の行なしで新しいテキストファイルを作成します。
findstr /V /R "^$" InputFile.txt > OutputFileNameWithFirstLineRemoved.txt
私は今日同様のことをする必要がありました、そしてこれは私が思いついたものでした:
FOR /F "tokens=* skip=1" %A IN ('type "input_file.ext"') DO @echo %A>>"output_file.ext"
これには、タブ文字が保持されるという点でmore +1
ソリューションよりも優れています。ただし、大きなファイルでは、この方法は他の方法よりもはるかに遅くなります。また、先頭のスペースは左にトリミングされますが、問題がある場合とない場合があります。