Unix script to remove the first line of a CSV file

烈酒焚心 提交于 2019-12-03 03:37:19

问题


I've stated before I'm not very good at scripting so what I have below copies files from a share directory to mine where I change their permissions. But then I wanted to remove the first line in each of the CSV files — the headings — and then I wanted to get this to run every hour.

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

* insert delete csv first line here *

Can anyone help me with deleting the first line of the CSV file and getting this to run automatically every hour, for example, or direct me to something I might understand to get cracking with it?


回答1:


You can delete the first line of a file using sed:

sed -i '' 1d file.csv

If you just want to get the contents of the file without the first line, and without modifying the file, remove the -i '' flag:

sed 1d file.csv

Here 1d is the command to execute:

  • 1 => line where to act
  • d => delete

So 1d means 'delete line 1'

If you want to get the first line, you can use sed too:

sed -n 1p file.csv

Here p stands for 'print' or

sed 1q file.csv

(see William Pursell's comment)




回答2:


While looking for this answer I also found this other thread. There they say use tail, which doesn't actually make an modifications which is what the OP wanted. You could over course copy to a temporary file. Additionally, if you were going to stream the files into another tool, you could use 'tail' in a pipe and never have to write temporary files or write to disk.

How can I remove the first line of a text file using bash/sed script?




回答3:


I tried to delete the first row from a CSV, cd into the location and then the answer to the question didn't work for me, was getting

sed: can't read 1d: No such file or directory

So, I've used the following stated here by @amit

sed -i '1d' filename.csv


来源:https://stackoverflow.com/questions/9633114/unix-script-to-remove-the-first-line-of-a-csv-file

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!