Unix-скрипт для удаления первой строки CSV-файла - PullRequest
30 голосов
/ 09 марта 2012

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

Ответы [ 2 ]

81 голосов
/ 09 марта 2012

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

sed -i '' 1d file.csv

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

sed 1d file.csv

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

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

Итак 1d означает «удалить строку 1»

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

sed -n 1p file.csv

Здесь p означает «печать» или

sed 1q file.csv

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

1 голос
/ 25 июня 2014

При поиске этого ответа я также нашел эту другую ветку.Там говорят «используйте хвост», который на самом деле не вносит изменений, чего хотел ОП.Вы можете со временем скопировать во временный файл.Кроме того, если вы собираетесь передавать файлы в другой инструмент, вы можете использовать «tail» в канале и никогда не записывать временные файлы или записывать на диск.строка текстового файла с использованием скрипта bash / sed?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...