2012-03-09 74 views
23

我之前說過我不擅長腳本編寫,所以我在下面將共享目錄中的文件複製到我的權限更改中。但之後我想刪除每個CSV文件中的第一行 - 標題 - 然後我想讓它每小時運行一次。用於刪除CSV文件的第一行的Unix腳本

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文件的第一行,並得到這個自動運行每隔一小時,例如,或直接我我可能理解得到它的破解?

回答

66

可以使用sed刪除文件的第一行:

sed -i '' 1d file.csv 

如果你只是想獲得的文件的內容,而第一線,和沒有修改文件,刪除-i ''標誌:

sed 1d file.csv 

這裏1d爲要執行的命令:

  • =>行,其中行事
  • d =>刪除

所以1D手段 '刪除線1'

如果你想要得到的第一行,也可以用sed:

sed -n 1p file.csv 

這裏p代表「打印」或

sed 1q file.csv 

(見威廉Pursell的評論)

+0

非常感謝的答案和解釋 – Zenaphor 2012-03-09 11:29:17

+2

兩個「sed的1P FILE.CSV」的示例將打印的第一行兩次,每隔一行一次。要只打印第一行,你需要'sed -n 1p'(儘管'sed 1q'更常見,並且打印完一行後退出。) – 2012-03-09 17:33:28

+0

oopps @WilliamPursell你是對的。正在更新... – 2012-03-12 15:53:14

1

在尋找這個答案我也發現這個其他線程。在那裏他們說使用尾巴,這實際上並沒有做出OP想要的修改。您可能會過度複製到臨時文件。此外,如果您要將文件流式傳輸到另一個工具,則可以在管道中使用「尾部」,而不必寫入臨時文件或寫入磁盤。

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

相關問題