巧妙地从文件中剪切一些行

时间:2014-10-31 22:24:49

标签: linux bash command-line-interface

我试图弄清楚如何(根本没有临时文件)可以剪切,例如,文件中的第2-10行。

基本上,我需要删除已经输入的CSV中的条目,但保留标题。

我相信那里的人已经足够精明了

1 个答案:

答案 0 :(得分:1)

您可以使用标准编辑器ed

ed -s file.csv < <(printf '%s\n' '2,10d' 'wq')

< <(printf ...)将驱使ed执行以下操作:

  • 使用命令2,10d
  • 删除2-10范围内的行
  • 保存(w)并退出(退出qwq

您的ed版本可能会在wq上投诉;在这种情况下,给它2个单独的命令(w然后q),如下所示:

ed -s file.csv < <(printf '%s\n' '2,10d' 'w' 'q')

否则,强制性的sed方式:

sed -i '2,10d' file.csv

就像ed方式一样,除了sed不是真正的文件编辑器:它使用(窗帘后面)一个临时文件 - 所以它在技术上不能满足你的要求要求。