web-dev-qa-db-ja.com

CSVファイルの最初の行を削除するUnixスクリプト

スクリプトを書くのが苦手だと前に言ったので、以下にあるものは、共有ディレクトリからファイルをコピーして、権限を変更する場所にコピーします。しかし、その後、各CSVファイルの最初の行(見出し)を削除し、それを1時間ごとに実行したかったのです。

cd /users
scp dehpc14_Disk_Quota_Report.csv /h/u544835
scp dehpc14_User_Disk_Usage.csv /h/u544835
cd /h/u544835
chmod 755 dehpc14_Disk_Quota_Report.csv
chmod 755 dehpc14_User_Disk_Usage.csv

*ここにcsvの最初の行を削除します*

たとえば、CSVファイルの最初の行を削除して1時間ごとに自動的に実行したり、それを理解するために理解できるものに誘導したりするのを手伝ってくれる人はいますか?

31
Zenaphor

sedを使用して、ファイルの最初の行を削除できます。

sed -i '' 1d file.csv

最初の行なしでファイルの内容を取得するだけで、withoutファイルを変更する場合は、-i ''フラグ:

sed 1d file.csv

ここで、1dは実行するコマンドです。

  • 1 =>行動する行
  • d =>削除

1dは「行1を削除」を意味します

最初の行を取得したい場合は、sedも使用できます。

sed -n 1p file.csv

ここでpは 'print'または

sed 1q file.csv

(ウィリアムパーセルのコメントを参照)

82

この答えを探している間に、この他のスレッドも見つけました。そこで彼らはuse tailと言いますが、実際にはOPが望んでいた変更を行いません。もちろん一時ファイルにコピーすることもできます。さらに、ファイルを別のツールにストリームする場合、パイプで「テール」を使用でき、一時ファイルを書き込んだりディスクに書き込んだりする必要はありません。

bash/sedスクリプトを使用してテキストファイルの最初の行を削除するにはどうすればよいですか?

1