聪明的方法来从文件中剪切一些行
答
您可以使用ed
,标准编辑:
ed -s file.csv < <(printf '%s\n' '2,10d' 'wq')
的< <(printf ...)
将推动ed
做到以下几点:
- 使用命令删除范围2-10中的行
2,10d
- 使用
wq
保存(w
)并退出(退出q
)。
您的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
并不是一个真正的文件编辑器:它使用(在窗帘后面)一个临时文件 - 所以它在技术上不能满足您的要求。
在我的Debian系统上,如果我像你那样运行'ed'并检查它是如何处理的,我会在'/ tmp /'中创建一个临时文件来执行编辑操作。 – Louis 2014-11-01 00:36:27
@Louis,true,编辑_do_使用临时文件':-D'。你是说我在这个答案中撒谎? '';-)。 – 2014-11-01 00:41:18
嗯,我只是不想让亲爱的'sed'看起来不像'ed'。 :) – Louis 2014-11-01 00:43:06