Unix script для удаления первой строки файла CSV

Я уже говорил, что не очень хорошо разбираюсь в сценариях, так что у меня есть копии файлов из папки общего доступа, где я меняю свои разрешения. Но потом мне захотелось удалить первую строку в каждом из CSV файлов - заголовки, а затем я хотел, чтобы это запускалось каждый час.

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

Вы можете удалить первую строку файла с помощью sed:

sed -i '' 1d file.csv

Если вы просто хотите получить содержимое файла без первой строки и без, чтобы изменить файл, удалите флаг -i '':

sed 1d file.csv

Здесь 1d - это команда для выполнения:

  • 1 = > строка, где действовать
  • d = > удалить

So 1d означает "удалить строку 1"

Если вы хотите получить первую строку, вы также можете использовать sed:

sed -n 1p file.csv

Здесь p означает 'print' или

sed 1q file.csv

(см. комментарий Уильяма Пурселла)

Ответ 2

Ища этот ответ, я также нашел этот другой поток. Там они говорят, что используют хвост, который на самом деле не производит модификаций, которые хотел бы получить OP. Скорее всего, вы можете скопировать во временный файл. Кроме того, если вы собираетесь передавать файлы в другой инструмент, вы можете использовать "хвост" в трубе и никогда не должны записывать временные файлы или записывать на диск.

Как удалить первую строку текстового файла с помощью bash/sed script?